Skip to content

Commit e8377d3

Browse files
committed
Fix possible leaks
- content_type_dup may leak on further post request - local content_type isn’t free’ed on unsupported content-type
1 parent 26feb2e commit e8377d3

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

main/SAPI.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,15 +205,22 @@ static void sapi_read_post_data(void)
205205
SG(request_info).post_entry = NULL;
206206
if (!sapi_module.default_post_reader) {
207207
/* no default reader ? */
208-
SG(request_info).content_type_dup = NULL;
208+
if (SG(request_info).content_type_dup) {
209+
efree(SG(request_info).content_type_dup);
210+
SG(request_info).content_type_dup = NULL;
211+
}
209212
sapi_module.sapi_error(E_WARNING, "Unsupported content type: '%s'", content_type);
213+
efree(content_type);
210214
return;
211215
}
212216
}
213217
if (oldchar) {
214218
*(p-1) = oldchar;
215219
}
216220

221+
if (SG(request_info).content_type_dup) {
222+
efree(SG(request_info).content_type_dup);
223+
}
217224
SG(request_info).content_type_dup = content_type;
218225

219226
if(post_reader_func) {
@@ -462,6 +469,9 @@ SAPI_API void sapi_activate(void)
462469
* depending on given content type */
463470
sapi_read_post_data();
464471
} else {
472+
if (SG(request_info).content_type_dup) {
473+
efree(SG(request_info).content_type_dup);
474+
}
465475
SG(request_info).content_type_dup = NULL;
466476
}
467477

0 commit comments

Comments
 (0)