library: Explicit about task ID string length

This removes the following error by stating the task ID can only be 10
characters wide, as it is an integer.

proc/readproc.c: In function ‘simple_nexttid’:
proc/readproc.c:1185:46: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 41 and 51 [-Wformat-truncation=]
   snprintf(path, PROCPATHLEN, "/proc/%d/task/%s", p->tgid, ent->d_name);
                                              ^~
proc/readproc.c:1185:3: note: ‘snprintf’ output between 14 and 279 bytes into a destination of size 64
   snprintf(path, PROCPATHLEN, "/proc/%d/task/%s", p->tgid, ent->d_name);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This commit is contained in:
Craig Small 2017-12-20 21:37:01 +11:00
parent 6634e813d4
commit a935a65b77

View File

@ -1182,7 +1182,7 @@ static int simple_nexttid(PROCTAB *restrict const PT, const proc_t *restrict con
t->tid = strtoul(ent->d_name, NULL, 10); t->tid = strtoul(ent->d_name, NULL, 10);
t->tgid = p->tgid; t->tgid = p->tgid;
//t->ppid = p->ppid; // cover for kernel behavior? we want both actually...? //t->ppid = p->ppid; // cover for kernel behavior? we want both actually...?
snprintf(path, PROCPATHLEN, "/proc/%d/task/%s", p->tgid, ent->d_name); snprintf(path, PROCPATHLEN, "/proc/%d/task/%.10s", p->tgid, ent->d_name);
return 1; return 1;
} }