From 6ba3d2604221699854c30dc4c99f42ca522afc56 Mon Sep 17 00:00:00 2001 From: Pete Nelson Date: Thu, 27 Jun 2013 16:51:07 -0400 Subject: [PATCH] buse.c: add assertions to avoid null function ptrs --- buse.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/buse.c b/buse.c index 508fea3..dd9ea64 100644 --- a/buse.c +++ b/buse.c @@ -136,6 +136,7 @@ int buse_main(const char* dev_file, const struct buse_operations *aop, void *use */ case NBD_CMD_READ: fprintf(stderr, "Request for read of size %d\n", len); + assert(aop->read); chunk = malloc(len); reply.error = aop->read(chunk, len, from, userdata); write_all(sk, (char*)&reply, sizeof(struct nbd_reply)); @@ -145,6 +146,7 @@ int buse_main(const char* dev_file, const struct buse_operations *aop, void *use break; case NBD_CMD_WRITE: fprintf(stderr, "Request for write of size %d\n", len); + assert(aop->write); chunk = malloc(len); read_all(sk, chunk, len); reply.error = aop->write(chunk, len, from, userdata); @@ -153,16 +155,19 @@ int buse_main(const char* dev_file, const struct buse_operations *aop, void *use break; case NBD_CMD_DISC: /* Handle a disconnect request. */ + assert(aop->disc); aop->disc(userdata); return 0; #if defined NBD_CMD_FLUSH case NBD_CMD_FLUSH: + assert(aop->flush); reply.error = aop->flush(userdata); write_all(sk, (char*)&reply, sizeof(struct nbd_reply)); break; #endif #if defined NBD_CMD_TRIM case NBD_CMD_TRIM: + assert(aop->trim); reply.error = aop->trim(from, len, userdata); write_all(sk, (char*)&reply, sizeof(struct nbd_reply)); break;