intel_gpu_dump: Use asprintf instead of a static-sized array

Not that we're really concerned about buffer-overrun attacks
against this utility, but still, good habits and clean code
are always preferred.
This commit is contained in:
Carl Worth 2009-04-13 14:35:11 -07:00
parent 5b8c19445c
commit 28a1d6436e

View File

@ -1970,10 +1970,10 @@ main (int argc, char *argv[])
} }
if (S_ISDIR(st.st_mode)) { if (S_ISDIR(st.st_mode)) {
char filename[1000]; char *filename;
uint32_t ring_head, ring_tail, acthd; uint32_t ring_head, ring_tail, acthd;
sprintf(filename, "%s/i915_ringbuffer_info", path); asprintf(&filename, "%s/i915_ringbuffer_info", path);
err = stat(filename, &st); err = stat(filename, &st);
if (err != 0) { if (err != 0) {
@ -1988,19 +1988,22 @@ main (int argc, char *argv[])
} }
parse_ringbuffer_info(filename, &ring_head, &ring_tail, &acthd); parse_ringbuffer_info(filename, &ring_head, &ring_tail, &acthd);
free (filename);
sprintf(filename, "%s/i915_batchbuffers", path); asprintf (&filename, "%s/i915_batchbuffers", path);
head_offset = acthd; head_offset = acthd;
tail_offset = 0xffffffff; tail_offset = 0xffffffff;
read_data_file (filename, 1); read_data_file (filename, 1);
free (filename);
sprintf(filename, "%s/i915_ringbuffer_data", path); asprintf (&filename, "%s/i915_ringbuffer_data", path);
head_offset = ring_head; head_offset = ring_head;
tail_offset = ring_tail; tail_offset = ring_tail;
printf("Ringbuffer: "); printf("Ringbuffer: ");
printf("Reminder: head pointer is GPU read, tail pointer is CPU " printf("Reminder: head pointer is GPU read, tail pointer is CPU "
"write\n"); "write\n");
read_data_file (filename, 0); read_data_file (filename, 0);
free (filename);
} else { } else {
read_data_file (path, 1); read_data_file (path, 1);
} }