From 4cc6d3858d1695e35673e6a627e6f5906e0b38a3 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Sun, 12 Apr 2020 21:23:52 +0200 Subject: [PATCH] fix: no error message when para was zero --- client/cliparser/cliparser.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/client/cliparser/cliparser.c b/client/cliparser/cliparser.c index 4e0fb4d9c..6e11d632c 100644 --- a/client/cliparser/cliparser.c +++ b/client/cliparser/cliparser.c @@ -157,11 +157,14 @@ int CLIParamHexToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int int ibuf = 0; uint8_t tmp_buf[256] = {0}; int res = CLIParamStrToBuf(argstr, tmp_buf, maxdatalen * 2, &ibuf); // *2 because here HEX - if (res || !ibuf){ + if (res) { printf("Parameter error: buffer overflow.\n"); fflush(stdout); return res; } + if (ibuf == 0) { + return res; + } switch (param_gethex_to_eol((char *)tmp_buf, 0, data, maxdatalen, datalen)) { case 1: @@ -199,12 +202,13 @@ int CLIParamStrToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int if (!ibuf) return 0; - if (ibuf > maxdatalen) + if (ibuf > maxdatalen) { + fflush(stdout); return 2; + } memcpy(data, tmp_buf, ibuf); *datalen = ibuf; - return 0; }