De: Antonio Scuri <[email protected]>
Enviado: domingo, 17 de maio de 2020 17:23
Para: IUP discussion list.
Assunto: Re: [Iup-users] Repeat of IM's "process/im_analyze.cpp allow
free(NULL); " patch...
> For me those "if"s are there also to remind me that those pointers where not
> allocated. For me one call to >malloc/calloc must match one call to free.
> Maybe I'm old, but I'll stick with that for now.
Certainly "call to malloc/calloc must match one call to free" is that is
correct, even if, two free for the same malloc would be double free.
The point is that IF it protects you from double free, only if the pointer is
marked as NULL, after the free as:
if (ptr) {
free(ptr);
ptr = NULL;
}
This is certainly defensive programming and protects the user, but it hides the
fact that they have a double free bug in the program.
At runtime, it makes no difference, calling free with NULL, as long as the
pointer has not been released before.
ptr = NULL;
free(ptr);
The big question is how to catch the double free that may exist.
Because this not to protect agaist double free.
if (ptr) {
free(ptr);
}
regards,
Ranier Vilela
_______________________________________________
Iup-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/iup-users