On 06/26/13 17:08, Jérémie Galarneau wrote: > The example of a portable version of timegm() uses the string returned by > getenv() after calling setenv() on the same environment variale. The tz > string may be invalid as per getenv.3: > > "The string pointed to by the return value of getenv() may be statically > allocated, and can be modified by a subsequent call to getenv(), putenv(3), > setenv(3), or unsetenv(3)." > > Signed-off-by: Jérémie Galarneau <jeremie.galarneau@xxxxxxxxxxxx> Thanks, Jérémie. I've applied your patch. Cheers, Michael > --- > man3/timegm.3 | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/man3/timegm.3 b/man3/timegm.3 > index 3ab194b..0e71be5 100644 > --- a/man3/timegm.3 > +++ b/man3/timegm.3 > @@ -84,12 +84,15 @@ my_timegm(struct tm *tm) > char *tz; > > tz = getenv("TZ"); > + if (tz) > + tz = strdup(tz); > setenv("TZ", "", 1); > tzset(); > ret = mktime(tm); > - if (tz) > + if (tz) { > setenv("TZ", tz, 1); > - else > + free(tz); > + } else > unsetenv("TZ"); > tzset(); > return ret; -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html