summaryrefslogtreecommitdiff
path: root/src/c
diff options
context:
space:
mode:
authorGravatar Sergey Mironov <grrwlf@gmail.com>2014-08-23 11:59:34 +0000
committerGravatar Sergey Mironov <grrwlf@gmail.com>2014-08-23 11:59:34 +0000
commitcbe0e1aeceefc7db712230a070ddcf757cfe1981 (patch)
tree2886379adb6577ecbb04d59665b5734b890c5cc1 /src/c
parentcb0fdb4d2b0682d67fe57dc755b574d1867216b5 (diff)
Check realloc's return code to prevent segfault on out of memoty condition
Diffstat (limited to 'src/c')
-rw-r--r--src/c/request.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/c/request.c b/src/c/request.c
index f212655f..9dc6aa59 100644
--- a/src/c/request.c
+++ b/src/c/request.c
@@ -444,8 +444,12 @@ request_result uw_request(uw_request_context rc, uw_context ctx,
int len = strlen(inputs);
if (len+1 > rc->queryString_size) {
- rc->queryString_size = len+1;
rc->queryString = realloc(rc->queryString, len+1);
+ if(rc->queryString == NULL) {
+ log_error(logger_data, "queryString is too long (not enough memory)\n");
+ return FAILED;
+ }
+ rc->queryString_size = len+1;
}
strcpy(rc->queryString, inputs);
@@ -480,8 +484,12 @@ request_result uw_request(uw_request_context rc, uw_context ctx,
on_success(ctx);
if (path_len + 1 > rc->path_copy_size) {
+ rc->path_copy = realloc(rc->path_copy, path_len + 1);
+ if(rc->path_copy == NULL) {
+ log_error(logger_data, "Path is too long (not enough memory)\n");
+ return FAILED;
+ }
rc->path_copy_size = path_len + 1;
- rc->path_copy = realloc(rc->path_copy, rc->path_copy_size);
}
strcpy(rc->path_copy, path);