From a4bce77e920be0a0140ac81d2cbc79e2ed88eefb Mon Sep 17 00:00:00 2001 From: antirez Date: Mon, 13 Jun 2016 09:51:06 +0200 Subject: [PATCH] Don't assume no padding or specific ordering in moduleLoadQueueEntry structure. We need to be free to shuffle fields or add more fields in a structure without breaking code. Related to issue #3293. --- src/config.c | 5 +++-- src/server.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/config.c b/src/config.c index 9487c4b10..e7ef4d0ec 100644 --- a/src/config.c +++ b/src/config.c @@ -154,10 +154,11 @@ void resetServerSaveParams(void) { } void queueLoadModule(sds path, sds *argv, int argc) { - struct moduleLoadQueueEntry *loadmod = - zmalloc(sizeof(struct moduleLoadQueueEntry)+sizeof(robj*)*argc); int i; + struct moduleLoadQueueEntry *loadmod; + loadmod = zmalloc(sizeof(struct moduleLoadQueueEntry)); + loadmod->argv = zmalloc(sizeof(robj*)*argc); loadmod->path = sdsnew(path); loadmod->argc = argc; for (i = 0; i < argc; i++) { diff --git a/src/server.h b/src/server.h index 6dc07d800..2719eef9c 100644 --- a/src/server.h +++ b/src/server.h @@ -686,7 +686,7 @@ struct saveparam { struct moduleLoadQueueEntry { sds path; int argc; - robj *argv[]; + robj **argv; }; struct sharedObjectsStruct {