diff options
Diffstat (limited to 'src/plugins/dvi_extractor.c')
-rw-r--r-- | src/plugins/dvi_extractor.c | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/src/plugins/dvi_extractor.c b/src/plugins/dvi_extractor.c index 9f7c8ff..f01ae8f 100644 --- a/src/plugins/dvi_extractor.c +++ b/src/plugins/dvi_extractor.c | |||
@@ -46,7 +46,6 @@ parseZZZ (const char *data, | |||
46 | size_t slen; | 46 | size_t slen; |
47 | size_t end; | 47 | size_t end; |
48 | int i; | 48 | int i; |
49 | char *value; | ||
50 | 49 | ||
51 | end = pos + len; | 50 | end = pos + len; |
52 | slen = strlen ("ps:SDict begin ["); | 51 | slen = strlen ("ps:SDict begin ["); |
@@ -70,24 +69,21 @@ parseZZZ (const char *data, | |||
70 | while ((slen < end) && (data[slen] != ')')) | 69 | while ((slen < end) && (data[slen] != ')')) |
71 | slen++; | 70 | slen++; |
72 | slen = slen - pos; | 71 | slen = slen - pos; |
73 | value = malloc (slen + 1); | 72 | { |
74 | if (value != NULL) | 73 | char value[slen + 1]; |
75 | { | 74 | value[slen] = '\0'; |
76 | value[slen] = '\0'; | 75 | memcpy (value, &data[pos], slen); |
77 | memcpy (value, &data[pos], slen); | 76 | if (0 != proc (proc_cls, |
78 | if (0 != proc (proc_cls, | 77 | "dvi", |
79 | "dvi", | 78 | tmap[i].type, |
80 | tmap[i].type, | 79 | EXTRACTOR_METAFORMAT_C_STRING, |
81 | EXTRACTOR_METAFORMAT_C_STRING, | 80 | "text/plain", |
82 | "text/plain", | 81 | value, |
83 | value, | 82 | slen +1)) |
84 | strlen (value) +1)) | 83 | { |
85 | { | 84 | return 1; |
86 | free (value); | 85 | } |
87 | return 1; | 86 | } |
88 | } | ||
89 | free (value); | ||
90 | } | ||
91 | pos += slen + 1; | 87 | pos += slen + 1; |
92 | } | 88 | } |
93 | } | 89 | } |