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)) {
char filename[1000];
char *filename;
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);
if (err != 0) {
@ -1988,19 +1988,22 @@ main (int argc, char *argv[])
}
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;
tail_offset = 0xffffffff;
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;
tail_offset = ring_tail;
printf("Ringbuffer: ");
printf("Reminder: head pointer is GPU read, tail pointer is CPU "
"write\n");
read_data_file (filename, 0);
free (filename);
} else {
read_data_file (path, 1);
}