On Wed, 06 Jan 2016 20:05:12 +0100, Aitor Czr wrote: > On 01/06/2016 07:59 PM, Edward Bartolo <edb...@gmail.com> wrote: >> Hi, >> >> I can't free the memory of some pointers ( *cad2 and *res) in >> netman-gtk3. This is what i get: >> >> ~$ gcc main.c -o main >> >> ~$ ./main >> *** Error in `./main': munmap_chunk(): invalid pointer: >> 0x0000000001bfdab4 *** >> Aborted
[...] Note: I didn't try to undertand what the code is intended to do, just commenting on some obvious flaws. > void scan_buffer (char **ptr, char *command, char *name, char *str1, char > *str2) > { > FILE *fp; > char *cad1, *cad2, *res; > > cad1=(char*)malloc(1024*sizeof(char)); Better C style would've been: cad1=malloc(1024); Casting malloc()'s return value is nonsense and potentially dangerous, sizeof(char) is always guaranteed to equal 1. [...] > cad2 = strstr((char *) cad1, name); > res = strstr((char *) cad2, str1); Now you assigned to cad2 and res and lost your only reference to your meticulously allocated buffers! (More bogus casts, BTW.) [...] And then you tried to free something that was not a pointer value returned by any of the *alloc() functions: > // free(cad2); > // free(res); [...] As I said, I didn't try to guess the intention - if you want to work in-place an the string or if you're actually looking for strcpy(). HTH, regards Irrwahn _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng