From: Sage Weil Date: Wed, 9 Aug 2017 21:27:49 +0000 (-0400) Subject: crush/CrushWrapper: keep weights and/or ids null if empty X-Git-Tag: v12.1.4~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c47fd553d4377a5d323a4dd3b7897f4c27c605ca;p=ceph.git crush/CrushWrapper: keep weights and/or ids null if empty Signed-off-by: Sage Weil (cherry picked from commit b3838c83d501bf2f40bb799300cde049123b0eb0) --- diff --git a/src/crush/CrushWrapper.cc b/src/crush/CrushWrapper.cc index 262db5876eb..ee8c0ac0bc8 100644 --- a/src/crush/CrushWrapper.cc +++ b/src/crush/CrushWrapper.cc @@ -1785,15 +1785,23 @@ int CrushWrapper::bucket_remove_item(crush_bucket *bucket, int item) assert(weight_set->size - 1 == new_size); for (__u32 k = position; k < new_size; k++) weight_set->weights[k] = weight_set->weights[k+1]; - weight_set->weights = (__u32*)realloc(weight_set->weights, - new_size * sizeof(__u32)); + if (new_size) { + weight_set->weights = (__u32*)realloc(weight_set->weights, + new_size * sizeof(__u32)); + } else { + weight_set->weights = NULL; + } weight_set->size = new_size; } if (arg->ids_size) { assert(arg->ids_size - 1 == new_size); for (__u32 k = position; k < new_size; k++) arg->ids[k] = arg->ids[k+1]; - arg->ids = (__s32 *)realloc(arg->ids, new_size * sizeof(__s32)); + if (new_size) { + arg->ids = (__s32 *)realloc(arg->ids, new_size * sizeof(__s32)); + } else { + arg->ids = NULL; + } arg->ids_size = new_size; } }