... | ... |
@@ -76,7 +76,6 @@ char *pdf_convert_utf(char *begin, size_t sz) |
76 | 76 |
{ |
77 | 77 |
char *res=NULL; |
78 | 78 |
char *buf, *outbuf; |
79 |
- size_t sz2; |
|
80 | 79 |
#if HAVE_ICONV |
81 | 80 |
char *p1, *p2; |
82 | 81 |
size_t inlen, outlen, i; |
... | ... |
@@ -87,15 +86,15 @@ char *pdf_convert_utf(char *begin, size_t sz) |
87 | 87 |
iconv_t cd; |
88 | 88 |
#endif |
89 | 89 |
|
90 |
- buf = cli_calloc(1, sz); |
|
90 |
+ buf = cli_calloc(1, sz+1); |
|
91 | 91 |
if (!(buf)) |
92 | 92 |
return NULL; |
93 |
+ memcpy(buf, begin, sz); |
|
93 | 94 |
|
94 | 95 |
#if HAVE_ICONV |
95 |
- //memcpy(buf, begin, sz); |
|
96 | 96 |
p1 = buf; |
97 | 97 |
|
98 |
- p2 = outbuf = cli_calloc(1, sz2+1); |
|
98 |
+ p2 = outbuf = cli_calloc(1, sz+1); |
|
99 | 99 |
if (!(outbuf)) { |
100 | 100 |
free(buf); |
101 | 101 |
return NULL; |
... | ... |
@@ -104,7 +103,7 @@ char *pdf_convert_utf(char *begin, size_t sz) |
104 | 104 |
for (i=0; encodings[i] != NULL; i++) { |
105 | 105 |
p1 = buf; |
106 | 106 |
p2 = outbuf; |
107 |
- inlen = outlen = sz2; |
|
107 |
+ inlen = outlen = sz; |
|
108 | 108 |
|
109 | 109 |
cd = iconv_open("UTF-8", encodings[i]); |
110 | 110 |
if (cd == (iconv_t)(-1)) { |
... | ... |
@@ -114,20 +113,20 @@ char *pdf_convert_utf(char *begin, size_t sz) |
114 | 114 |
|
115 | 115 |
iconv(cd, (char **)(&p1), &inlen, &p2, &outlen); |
116 | 116 |
|
117 |
- if (outlen == sz2) { |
|
117 |
+ if (outlen == sz) { |
|
118 | 118 |
/* Decoding unsuccessful right from the start */ |
119 | 119 |
iconv_close(cd); |
120 | 120 |
continue; |
121 | 121 |
} |
122 | 122 |
|
123 |
- outbuf[sz2 - outlen] = '\0'; |
|
123 |
+ outbuf[sz - outlen] = '\0'; |
|
124 | 124 |
|
125 | 125 |
res = strdup(outbuf); |
126 | 126 |
iconv_close(cd); |
127 | 127 |
break; |
128 | 128 |
} |
129 | 129 |
#else |
130 |
- outbuf = cli_utf16_to_utf8(buf, sz2, UTF16_BOM); |
|
130 |
+ outbuf = cli_utf16_to_utf8(buf, sz, UTF16_BOM); |
|
131 | 131 |
if (!outbuf) { |
132 | 132 |
free(buf); |
133 | 133 |
return NULL; |