[cs631apue] memory leak error I can't seem to find
Jan Schaumann
jschauma at stevens.edu
Wed Oct 3 22:26:49 EDT 2018
Marlon Seaton <mseaton at stevens.edu> wrote:
> could the following code snippet potentially cause the problem that I
> am having?
Hard to say, since your code snippet is incomplete and we don't know
what you're doing around this; presumably it's in a loop, and it's quite
possible that you're moving beyond the initial size of 'pfilenames'.
The general idea of doing
char **names;
names = malloc(num * sizeof(char*));
for (i =0; i<num; i++) {
names[i] = malloc(len * sizeof(char));
strncpy(names[i], whatever, len);
}
is ok, so I'm guessing a boundaries issue on 'i'. gdb(1) to the rescue!
You may also wish to instead let strdup(3) do the malloc(3) for you:
names[i] = strdup(whatever);
(Remember to add error checking to all of the above.)
Also, as stressed in class, I'd recommend against using opendir(2) /
readdir(2) and instead using fts(3) for filesystem hierarchy
traversal.
-Jan
More information about the cs631apue
mailing list