X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=rculfhash.c;h=1afccfdfc1378ad295cbcbc8f7cec0861b800a9b;hb=e224628499d5396c5b2942ab43993ba99b207c4d;hp=94366050bfb00957988730edcae25923e3f39379;hpb=aee1715b914e5f4ba5003079d5d954ef2209f04e;p=urcu.git diff --git a/rculfhash.c b/rculfhash.c index 9436605..1afccfd 100644 --- a/rculfhash.c +++ b/rculfhash.c @@ -150,12 +150,14 @@ */ #define _LGPL_SOURCE +#define _GNU_SOURCE #include #include #include #include #include #include +#include #include "config.h" #include @@ -1780,6 +1782,11 @@ void __cds_lfht_resize_lazy_launch(struct cds_lfht *ht) return; } work = malloc(sizeof(*work)); + if (work == NULL) { + dbg_printf("error allocating resize work, bailing out\n"); + uatomic_dec(&ht->in_progress_resize); + return; + } work->ht = ht; ht->flavor->update_call_rcu(&work->head, do_resize_cb); CMM_STORE_SHARED(ht->resize_initiated, 1);