autofs-5.1.2 - fix argc off by one in mount_autofs.c From: Ian Kent The mount_autofs.c module incorrectly calculates the number of arguments to its map. Signed-off-by: Ian Kent --- CHANGELOG | 1 + modules/mount_autofs.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 9bf600f..3c9ee80 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -18,6 +18,7 @@ xx/xx/2016 autofs-5.1.3 - Avoid local variable name shadowing another. - fix typo in MOUNT_FLAG_GHOST comment. - fix cachefs parse message not being logged. +- fix argc off by one in mount_autofs.c. 15/06/2016 autofs-5.1.2 ======================= diff --git a/modules/mount_autofs.c b/modules/mount_autofs.c index c6a3199..65c0a06 100644 --- a/modules/mount_autofs.c +++ b/modules/mount_autofs.c @@ -179,11 +179,11 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, if (options) { char *t = options; - do { + while ((t = strchr(t, ',')) != NULL) { argc++; if (*t == ',') t++; - } while ((t = strchr(t, ',')) != NULL); + } } argv = (const char **) alloca((argc + 1) * sizeof(char *)); @@ -235,13 +235,13 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, if (options) { p = options; - do { + while ((p = strchr(p, ',')) != NULL) { if (*p == ',') { *p = '\0'; p++; } argv[argc++] = p; - } while ((p = strchr(p, ',')) != NULL); + } } argv[argc] = NULL;