examples/packet_ordering: fix return value of parse_portmask
Checks
Commit Message
Giving invalid or zero portmask as command line option to
packet_ordering application will have an unexpected response.
The reason behind this is that parse_portmask's return value is
stored in a variable called portmask.The data type of portmask
is unsigned int, hence returning -1 in case of zero or invalid
portmask causes an unexpected behaviour.
If we return 0 instead of -1 this issue can be resolved.
The program already contains the functionality to print
"invalid portmask" and program usage if portmask is zero.
Fixes: 850f3733f840 ("examples/packet_ordering: new sample app")
Signed-off-by: Sarosh Arif <sarosh.arif@emumba.com>
---
examples/packet_ordering/main.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
Comments
05/06/2020 15:41, Sarosh Arif:
> Giving invalid or zero portmask as command line option to
> packet_ordering application will have an unexpected response.
> The reason behind this is that parse_portmask's return value is
> stored in a variable called portmask.The data type of portmask
> is unsigned int, hence returning -1 in case of zero or invalid
> portmask causes an unexpected behaviour.
> If we return 0 instead of -1 this issue can be resolved.
> The program already contains the functionality to print
> "invalid portmask" and program usage if portmask is zero.
>
> Fixes: 850f3733f840 ("examples/packet_ordering: new sample app")
>
> Signed-off-by: Sarosh Arif <sarosh.arif@emumba.com>
Merged with same fix for other examples, thanks.
@@ -143,10 +143,7 @@ parse_portmask(const char *portmask)
/* parse hexadecimal string */
pm = strtoul(portmask, &end, 16);
if ((portmask[0] == '\0') || (end == NULL) || (*end != '\0'))
- return -1;
-
- if (pm == 0)
- return -1;
+ return 0;
return pm;
}