mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-14 23:05:03 -04:00
Fix a memory leak on error in evhttp_uriencode
If we ran out of memory in evhttp_uriencode when allocating the output buffer, we would neglect to call evbuffer_free() on our temporary buffer. Now we always free the temporary buffer. Fixes sourceforge issue 3539887. Thanks to Andrew Cox for reporting this one.
This commit is contained in:
parent
160e58b67d
commit
11c8b31754
5
http.c
5
http.c
@ -2685,9 +2685,8 @@ evhttp_uriencode(const char *uri, ev_ssize_t len, int space_as_plus)
|
|||||||
}
|
}
|
||||||
evbuffer_add(buf, "", 1); /* NUL-terminator. */
|
evbuffer_add(buf, "", 1); /* NUL-terminator. */
|
||||||
result = mm_malloc(evbuffer_get_length(buf));
|
result = mm_malloc(evbuffer_get_length(buf));
|
||||||
if (!result)
|
if (result)
|
||||||
return NULL;
|
evbuffer_remove(buf, result, evbuffer_get_length(buf));
|
||||||
evbuffer_remove(buf, result, evbuffer_get_length(buf));
|
|
||||||
evbuffer_free(buf);
|
evbuffer_free(buf);
|
||||||
|
|
||||||
return (result);
|
return (result);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user