From: Danny Al-Gaaf Date: Wed, 4 Jun 2014 21:22:18 +0000 (+0200) Subject: librbd/internal.cc: check earlier for null pointer X-Git-Tag: v0.80.6~105 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5f74fb294a0cd9b973aae45de17f38436bac6d61;p=ceph.git librbd/internal.cc: check earlier for null pointer Fix potential null ponter deref, move check for 'order != NULL' to the beginning of the function to prevent a) deref in ldout() call and b) to leave function as early as possible if check fails. [src/librbd/internal.cc:843] -> [src/librbd/internal.cc:865]: (warning) Possible null pointer dereference: order - otherwise it is redundant to check it against null. Signed-off-by: Danny Al-Gaaf (cherry picked from commit 3ee3e66a9520a5fcafa7d8c632586642f7bdbd29) --- diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index e56ef0897f48..36cddf80616d 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -832,6 +832,9 @@ reprotect_and_return_err: bool old_format, uint64_t features, int *order, uint64_t stripe_unit, uint64_t stripe_count) { + if (!order) + return -EINVAL; + CephContext *cct = (CephContext *)io_ctx.cct(); ldout(cct, 20) << "create " << &io_ctx << " name = " << imgname << " size = " << size << " old_format = " << old_format @@ -857,9 +860,6 @@ reprotect_and_return_err: return -EEXIST; } - if (!order) - return -EINVAL; - if (!*order) *order = cct->_conf->rbd_default_order; if (!*order)