diff options
| author | 2011-03-31 08:21:39 (JST) | |
|---|---|---|
| committer | 2011-05-24 05:58:35 (JST) | |
| commit | 070e109c1413d28b54eb6123a9fd24ac98897554 (patch) | |
| tree | 70f10262cdbc29cb9d083d24c03b1524a3d90ecd | |
| parent | c9059710e7a1dbd47c22c412e0ba8f591105e3cf (diff) | |
| download | cgit-070e109c1413d28b54eb6123a9fd24ac98897554.zip cgit-070e109c1413d28b54eb6123a9fd24ac98897554.tar.gz | |
Fix memory leak in http_parse_querystring().
Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| -rw-r--r-- | html.c | 5 |
1 files changed, 3 insertions, 2 deletions
| @@ -290,12 +290,12 @@ char *convert_query_hexchar(char *txt) | |||
| 290 | 290 | ||
| 291 | int http_parse_querystring(const char *txt_, void (*fn)(const char *name, const char *value)) | 291 | int http_parse_querystring(const char *txt_, void (*fn)(const char *name, const char *value)) |
| 292 | { | 292 | { |
| 293 | char *t, *txt, *value = NULL, c; | 293 | char *o, *t, *txt, *value = NULL, c; |
| 294 | 294 | ||
| 295 | if (!txt_) | 295 | if (!txt_) |
| 296 | return 0; | 296 | return 0; |
| 297 | 297 | ||
| 298 | t = txt = strdup(txt_); | 298 | o = t = txt = strdup(txt_); |
| 299 | if (t == NULL) { | 299 | if (t == NULL) { |
| 300 | printf("Out of memory\n"); | 300 | printf("Out of memory\n"); |
| 301 | exit(1); | 301 | exit(1); |
| @@ -318,5 +318,6 @@ int http_parse_querystring(const char *txt_, void (*fn)(const char *name, const | |||
| 318 | } | 318 | } |
| 319 | if (t!=txt) | 319 | if (t!=txt) |
| 320 | (*fn)(txt, value); | 320 | (*fn)(txt, value); |
| 321 | free(o); | ||
| 321 | return 0; | 322 | return 0; |
| 322 | } | 323 | } |
