diff --git a/apps/shell/shell-udpsend.c b/apps/shell/shell-udpsend.c index 2d6c44ff5..32a02bbde 100644 --- a/apps/shell/shell-udpsend.c +++ b/apps/shell/shell-udpsend.c @@ -30,7 +30,7 @@ * * Author: Adam Dunkels * - * $Id: shell-udpsend.c,v 1.4 2010/02/04 14:59:08 adamdunkels Exp $ + * $Id: shell-udpsend.c,v 1.5 2010/02/04 15:23:15 nifi Exp $ */ #include @@ -84,13 +84,17 @@ PROCESS_THREAD(shell_udpsend_process, ev, data) "udpsend [localport]: server as address", ""); PROCESS_EXIT(); } + if(next - (char *)data > sizeof(server)) { + shell_output_str(&udpsend_command, "Too long input", ""); + PROCESS_EXIT(); + } strncpy(server, data, sizeof(server)); /* NULL-terminate the server string. */ server[next - (char *)data] = 0; ++next; port = shell_strtolong(next, &nextptr); - uiplib_ipaddrconv(server, (u8_t *)&serveraddr); + uiplib_ipaddrconv(server, (uint8_t *)&serveraddr); udpconn = udp_new(&serveraddr, htons(port), NULL); if(next != nextptr) {