1. if the description field for a exif information is empty the program
dumps core when trying to change this. The reason is a strcmp with a
NULL value.
The fix add the small functionality to set the field to default when
it is set empty.
2. There was a g_strdup miss in exif.c which could end in memory
corruption.
g_free(ee->key);
ee->key = g_strdup(gtk_entry_get_text(GTK_ENTRY(cdd->key_entry)));
title = gtk_entry_get_text(GTK_ENTRY(cdd->title_entry));
- if (strcmp(ee->title, title) != 0)
+ if (!title || strlen(title) == 0)
+ {
+ g_free(ee->title);
+ ee->title = exif_get_description_by_key(ee->key);
+ ee->auto_title = TRUE;
+ }
+ else if (!ee->title || strcmp(ee->title, title) != 0)
{
g_free(ee->title);
ee->title = g_strdup(title);
i = 0;
while (ExifKnownGPSInfoMarkersList[i].tag > 0)
{
- if (strcmp(key, ExifKnownGPSInfoMarkersList[i].key) == 0) return _(ExifKnownGPSInfoMarkersList[i].description);
+ if (strcmp(key, ExifKnownGPSInfoMarkersList[i].key) == 0) return g_strdup(_(ExifKnownGPSInfoMarkersList[i].description));
i++;
}