diff options
author | Daniel Stenberg <daniel@haxx.se> | 2017-06-18 23:57:45 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-06-18 23:57:45 +0200 |
commit | 65ca030513303747be26a9d64851784cfff6f478 (patch) | |
tree | 52221940a48db25d1dda66932ecc4797a97877c7 /lib/http2.c | |
parent | 7b3b4722bea40c9f88d6fffaf429c370445b4864 (diff) |
http2: fix OOM crash
torture mode with test 1021 found it
Diffstat (limited to 'lib/http2.c')
-rw-r--r-- | lib/http2.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/http2.c b/lib/http2.c index f8e23c517..98fc147a9 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -2134,12 +2134,15 @@ CURLcode Curl_http2_switched(struct connectdata *conn, return CURLE_OK; } -void Curl_http2_add_child(struct Curl_easy *parent, struct Curl_easy *child, - bool exclusive) +CURLcode Curl_http2_add_child(struct Curl_easy *parent, + struct Curl_easy *child, + bool exclusive) { if(parent) { struct Curl_http2_dep **tail; struct Curl_http2_dep *dep = calloc(1, sizeof(struct Curl_http2_dep)); + if(!dep) + return CURLE_OUT_OF_MEMORY; dep->data = child; if(parent->set.stream_dependents && exclusive) { @@ -2170,6 +2173,7 @@ void Curl_http2_add_child(struct Curl_easy *parent, struct Curl_easy *child, child->set.stream_depends_on = parent; child->set.stream_depends_e = exclusive; + return CURLE_OK; } void Curl_http2_remove_child(struct Curl_easy *parent, struct Curl_easy *child) |