From 9651aeaf7862f6c1e161dcf23b4d506c103255bb Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Sat, 24 Feb 2007 17:57:57 +0000 Subject: [PATCH] Pad to given length, not replace data with spaces --- ext/exif/exif.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ext/exif/exif.c b/ext/exif/exif.c index ff98ad74756..2768e423136 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -1004,18 +1004,21 @@ static char * exif_get_tagname(int tag_num, char *ret, int len, tag_table_type t if (ret && len) { strlcpy(ret, tag_table[i].Desc, abs(len)); if (len < 0) { - memset(ret, ' ', -len - 1); + memset(ret + strlen(ret), ' ', -len - strlen(ret) - 1); + ret[-len] = '\0'; } return ret; } return tag_table[i].Desc; } } + if (ret && len) { snprintf(tmp, sizeof(tmp), "UndefinedTag:0x%04X", tag_num); strlcpy(ret, tmp, abs(len)); if (len < 0) { - memset(ret, ' ', -len - 1); + memset(ret + strlen(ret), ' ', -len - strlen(ret) - 1); + ret[-len] = '\0'; } return ret; }