libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit 541f7eb3c95001587904b8521ca11dc610047fa1
parent f447149d2ffb7b400e638773733b87cbd05f1371
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sat, 14 Aug 2010 20:20:57 +0000

avoid malloc and strlen

Diffstat:
Msrc/plugins/dvi_extractor.c | 34+++++++++++++++-------------------
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; } }