diff --git a/sys/shell/commands/sc_icmpv6_echo.c b/sys/shell/commands/sc_icmpv6_echo.c index 1de251599e60beaef9634a40f9a6108125600c60..e5d1c1812388ff1f15e4c19721674b15479c7b43 100644 --- a/sys/shell/commands/sc_icmpv6_echo.c +++ b/sys/shell/commands/sc_icmpv6_echo.c @@ -150,8 +150,7 @@ int _icmpv6_ping(int argc, char **argv) ipv6_addr_t addr; msg_t msg; gnrc_netreg_entry_t *ipv6_entry, my_entry = { NULL, ICMPV6_ECHO_REP, - thread_getpid() - }; + thread_getpid() }; uint32_t min_rtt = UINT32_MAX, max_rtt = 0; uint64_t sum_rtt = 0; uint64_t ping_start; @@ -182,11 +181,16 @@ int _icmpv6_ping(int argc, char **argv) stat_interval = atoi(argv[4 + param_offset]); } - if ((ipv6_addr_from_str(&addr, addr_str) == NULL) || (((int)payload_len) < 0)) { + if ((int)payload_len < 0) { usage(argv); return 1; } + if (ipv6_addr_from_str(&addr, addr_str) == NULL) { + puts("error: malformed address"); + return 1; + } + if (gnrc_netreg_register(GNRC_NETTYPE_ICMPV6, &my_entry) < 0) { puts("error: network registry is full"); return 1;