From: Jan P. <pa...@us...> - 2004-01-07 15:17:02
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1:/tmp/cvs-serv31210 Modified Files: exif-entry.c Log Message: EXIF_TAG_COMPONENTS_CONFIGURATION, EXIF_TAG_COPYRIGHT: do not write beyond provided space in val: 3arg of every strncat() fixed Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- exif-entry.c 7 Jan 2004 15:12:12 -0000 1.43 +++ exif-entry.c 7 Jan 2004 15:16:59 -0000 1.44 @@ -227,19 +227,19 @@ strncpy (val, e->data, MIN (maxlen, e->size)); else strncpy (val, _("[None]"), maxlen); - strncat (val, " ", maxlen); - strncat (val, _("(Photographer)"), maxlen); + strncat (val, " ", maxlen - strlen(val)); + strncat (val, _("(Photographer)"), maxlen - strlen(val)); /* Second part: Editor. */ - strncat (val, " - ", maxlen); + strncat (val, " - ", maxlen - strlen(val)); if (e->size && e->data && (strlen ((char *) e->data) + 1 < e->size) && (strspn (e->data, " ") != strlen ((char *) e->data))) - strncat (val, e->data + strlen (e->data) + 1, maxlen); + strncat (val, e->data + strlen (e->data) + 1, maxlen - strlen(val)); else - strncat (val, _("[None]"), maxlen); - strncat (val, " ", maxlen); - strncat (val, _("(Editor)"), maxlen); + strncat (val, _("[None]"), maxlen - strlen(val)); + strncat (val, " ", maxlen - strlen(val)); + strncat (val, _("(Editor)"), maxlen - strlen(val)); break; case EXIF_TAG_FNUMBER: @@ -390,8 +390,8 @@ case 6: c = _("B"); break; default: c = _("reserved"); break; } - strncat (val, c, maxlen); - if (i < 3) strncat (val, " ", maxlen); + strncat (val, c, maxlen - strlen(val)); + if (i < 3) strncat (val, " ", maxlen - strlen(val)); } break; case EXIF_TAG_SENSING_METHOD: |