Message ID | 20171109154049.42386-2-vsementsov@virtuozzo.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2017-11-09 16:40, Vladimir Sementsov-Ogievskiy wrote: > This place is not obvious, nbd_export_close may theoretically reduce > refcount to 0. It may happen if someone calls nbd_export_put on named > export not through nbd_export_set_name when refcount is 1. > > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> > --- > nbd/server.c | 1 + > 1 file changed, 1 insertion(+) Reviewed-by: Max Reitz <mreitz@redhat.com>
diff --git a/nbd/server.c b/nbd/server.c index 70b40ed27e..2f2e05943f 100644 --- a/nbd/server.c +++ b/nbd/server.c @@ -1179,6 +1179,7 @@ void nbd_export_put(NBDExport *exp) nbd_export_close(exp); } + assert(exp->refcount > 0); if (--exp->refcount == 0) { assert(exp->name == NULL); assert(exp->description == NULL);
This place is not obvious, nbd_export_close may theoretically reduce refcount to 0. It may happen if someone calls nbd_export_put on named export not through nbd_export_set_name when refcount is 1. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> --- nbd/server.c | 1 + 1 file changed, 1 insertion(+)