commit 541f7eb3c95001587904b8521ca11dc610047fa1
parent f447149d2ffb7b400e638773733b87cbd05f1371
Author: Christian Grothoff <christian@grothoff.org>
Date: Sat, 14 Aug 2010 20:20:57 +0000
avoid malloc and strlen
Diffstat:
1 file changed, 15 insertions(+), 19 deletions(-)
diff --git a/src/plugins/dvi_extractor.c b/src/plugins/dvi_extractor.c
@@ -46,7 +46,6 @@ parseZZZ (const char *data,
size_t slen;
size_t end;
int i;
- char *value;
end = pos + len;
slen = strlen ("ps:SDict begin [");
@@ -70,24 +69,21 @@ parseZZZ (const char *data,
while ((slen < end) && (data[slen] != ')'))
slen++;
slen = slen - pos;
- value = malloc (slen + 1);
- if (value != NULL)
- {
- value[slen] = '\0';
- memcpy (value, &data[pos], slen);
- if (0 != proc (proc_cls,
- "dvi",
- tmap[i].type,
- EXTRACTOR_METAFORMAT_C_STRING,
- "text/plain",
- value,
- strlen (value) +1))
- {
- free (value);
- return 1;
- }
- free (value);
- }
+ {
+ char value[slen + 1];
+ value[slen] = '\0';
+ memcpy (value, &data[pos], slen);
+ if (0 != proc (proc_cls,
+ "dvi",
+ tmap[i].type,
+ EXTRACTOR_METAFORMAT_C_STRING,
+ "text/plain",
+ value,
+ slen +1))
+ {
+ return 1;
+ }
+ }
pos += slen + 1;
}
}