if base and dup are the same pointer or pointing into the same allocation, then a free on one of them will free the other one as well.
On Sat, 20 Apr 2019, 11:27 Xavi Artigas, <xavierarti...@gmail.com> wrote: > Sure, base should not be freed, but dup must be for sure, no? > > Anyway, this is simple enough to check with a test case and valgrind :) > > On Sat, 20 Apr 2019, 11:14 am Simon Mages, <mages.si...@googlemail.com> > wrote: > >> Well, >> >> dup and base can be the same pointer. >> >> BR >> >> On Sat, 20 Apr 2019, 11:07 Xavi Artigas, <xavierarti...@gmail.com> wrote: >> >>> Hi, >>> >>> Nobody is freeing what basename returns, right? Or am I reading it wrong? >>> (I am not in front of the computer) >>> >>> Xavi >>> >>> On Fri, 19 Apr 2019, 5:44 pm Simon Mages via enlightenment-devel, < >>> enlightenment-devel@lists.sourceforge.net> wrote: >>> >>>> Hi there, >>>> >>>> i tried to compile efl on a somewhat hardened linux. >>>> >>>> >>>> https://github.com/Enlightenment/efl/blob/master/src/bin/eolian_cxx/eolian_cxx.cc >>>> >>>> """ >>>> char* dup = strdup(opts.in_files[0].c_str()); >>>> char* base = basename(dup); >>>> std::string cpp_types_header; >>>> opts.unit = (Eolian_Unit*)opts.state; >>>> klass = ::eolian_state_class_by_file_get(opts.state, base); >>>> free(dup); >>>> """ >>>> >>>> basename(3): >>>> ... >>>> These functions may return pointers to statically allocated memory >>>> which may be overwritten by subsequent calls. Alternatively, they may >>>> return a pointer to some part of path, so that the string referred to >>>> by path should not be modified or freed until the pointer returned by >>>> the function is no longer required. >>>> ... >>>> >>>> As far as i understand the string share structure, this call to free >>>> should not be there. Somewhere else in the file there is similar case. >>>> Sorry for not sending a diff, but i hope that helps anyway. >>>> >>>> BR >>>> Simon >>>> >>>> >>>> _______________________________________________ >>>> enlightenment-devel mailing list >>>> enlightenment-devel@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >>>> >>> _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel