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