fixed 420759 4.4.1-1 tags 420759 patch thanks On Tue, Apr 24, 2007 at 09:27:41AM -0500, Jason Kraftcheck wrote: > orageclock panel plugin in Debian stable leaks memory every time > it updates the time.
> --- orage-4.3.99.1/panel-plugin/orageclock.c 2006-09-02 10:55:11.000000000 > -0500 > +++ orage-mod/panel-plugin/orageclock.c 2007-04-18 15:59:20.000000000 > -0500 > @@ -96,9 +96,9 @@ > for (i = 0; i < OC_MAX_LINES; i++) { > line = &clock->line[i]; > if (line->show) { > - strftime(time_s, sizeof(time_s) > - , g_locale_from_utf8(line->data->str, -1, NULL, NULL, > NULL) > - , &clock->now); > + gchar* locstr = g_locale_from_utf8(line->data->str, -1, NULL, > NULL, NULL); > + strftime(time_s, sizeof(time_s), locstr, &clock->now); > + g_free(locstr); > if (!g_utf8_validate(time_s, -1, NULL)) { > utf8time_s = g_locale_to_utf8(time_s, -1, NULL, NULL, NULL); > if (utf8time_s) { Upstream fixed this back in October in SVN. We'll have to prepare a version for proposed-updates I guess. There is another use of g_locale_from_utf8 in a similarly bogus way just before. I've added this one in and used char *s as that's what future versions of orage have used. I end up with: --- orage-4.3.99.1/panel-plugin/orageclock.c 2006-09-02 16:55:11.000000000 +0100 +++ orage-4.3.99.1-mod/panel-plugin/orageclock.c 2007-04-26 15:30:13.000000000 +0100 @@ -49,6 +49,7 @@ { char date_s[255]; char *utf8date = NULL; + char *tmp; /* TRANSLATORS: Use format characters from strftime(3) * to get the proper string for your locale. @@ -59,9 +60,11 @@ * %Y : four digit year * %V : ISO week number */ + tmp = g_locale_from_utf8( _("%A %d %B %Y/%V"), -1, NULL, NULL, NULL); strftime(date_s, 255 - , g_locale_from_utf8( _("%A %d %B %Y/%V"), -1, NULL, NULL, NULL) + , tmp , &clock->now); + g_free(tmp); /* Conversion to utf8 */ if (!g_utf8_validate(date_s, -1, NULL)) { @@ -89,6 +92,7 @@ int i; static gint mday = -1; ClockLine *line; + char *tmp; time(&t); localtime_r(&t, &clock->now); @@ -96,9 +100,11 @@ for (i = 0; i < OC_MAX_LINES; i++) { line = &clock->line[i]; if (line->show) { + tmp = g_locale_from_utf8(line->data->str, -1, NULL, NULL, NULL); strftime(time_s, sizeof(time_s) - , g_locale_from_utf8(line->data->str, -1, NULL, NULL, NULL) + , tmp , &clock->now); + g_free(tmp); if (!g_utf8_validate(time_s, -1, NULL)) { utf8time_s = g_locale_to_utf8(time_s, -1, NULL, NULL, NULL); if (utf8time_s) { Does that look sane to you? It builds at least. I need to create a stable chroot and a stable pbuilder environment to properly test it yet but if you could test it as well that would help. Simon -- ... "I know what I wrote Mulder. I also know that the laws of physics would permit the theoretical possibility of time travel but the limits of human endurance would prevent such a trip from ever happening" -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]