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:
|