Browse Source

xhttp_rpc: fix arg parsing

Ovidiu Sas 11 years ago
parent
commit
3615f3c264
1 changed files with 10 additions and 3 deletions
  1. 10 3
      modules/xhttp_rpc/xhttp_rpc_fnc.c

+ 10 - 3
modules/xhttp_rpc/xhttp_rpc_fnc.c

@@ -310,7 +310,16 @@ void xhttp_rpc_get_next_arg(rpc_ctx_t* ctx, str *arg)
 	int i;
 	int i;
 
 
 	trim_leading(&ctx->arg2scan);
 	trim_leading(&ctx->arg2scan);
-	if (ctx->arg2scan.len) {
+
+	if (ctx->arg2scan.len<=0) {
+		*arg = XHTTP_RPC_NULL_ARG;
+		return;
+	}
+	if (ctx->arg2scan.len==1 && ctx->arg2scan.s[0]=='\0') {
+		*arg = XHTTP_RPC_NULL_ARG;
+		return;
+	}
+	else {
 		*arg = ctx->arg2scan;
 		*arg = ctx->arg2scan;
 		for(i=1; i<arg->len-1; i++) {
 		for(i=1; i<arg->len-1; i++) {
 			if(arg->s[i]==' '||arg->s[i]=='\t'||
 			if(arg->s[i]==' '||arg->s[i]=='\t'||
@@ -322,8 +331,6 @@ void xhttp_rpc_get_next_arg(rpc_ctx_t* ctx, str *arg)
 		i++;
 		i++;
 		ctx->arg2scan.s += i;
 		ctx->arg2scan.s += i;
 		ctx->arg2scan.len -= i;
 		ctx->arg2scan.len -= i;
-	} else {
-		*arg = XHTTP_RPC_NULL_ARG;
 	}
 	}
 	return;
 	return;
 }
 }