Only clear string pointer in parser for sub-value options

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
diff --git a/parse.c b/parse.c
index 25de29e..2dee446 100644
--- a/parse.c
+++ b/parse.c
@@ -489,8 +489,10 @@
 
 		posval_sort(o, posval);
 
-		if (!o->posval[0].ival)
+		if (!o->posval[0].ival) {
+			vp = NULL;
 			goto match;
+		}
 
 		ret = 1;
 		for (i = 0; i < PARSE_MAX_VP; i++) {
@@ -514,7 +516,7 @@
 				if (rest) {
 					*rest = '\0';
 					ptr = rest + 1;
-				} else
+				} else if (vp && vp->cb)
 					ptr = NULL;
 				break;
 			}