Rainer Zocholl wrote: > > Again: > The most beloved problem: Reentrancy... > > This C-Function in tools.c looks suspicious: > > cString TimeToString(time_t t) > { > char buffer[32]; > if (ctime_r(&t, buffer)) { > buffer[strlen(buffer) - 1] = 0; // strip trailing newline > return buffer; > } > return "???"; > } > > > It's usually no good idea to deference a variable on the stack > OUTSIDE the function it self..the next call to an other > functiom may overwrite the values! > It might work very often, but it is not really much better than a "static"! > > Is there really no tool like "bounds checker for linux" > that will warn at those obvious booby traps? > > > > Having a deja vue: > I thought all that was "overworked" with the > "thread-save" patches 3 month ago? > > Or didn't these patches made the way into VDR? > > > > The fastest fix may be: > Make it like in ctime_r an define a buffer pint as parameter. > The slowest: use the ugly time wasting asprintf and never forget > to free the memory... cString creates a copy of buffer upon return. Klaus