change TCP port datatype from int to uint16_t

because int doesn't match the range
add range check in every TCP binary
This commit is contained in:
Stefan Wahren
2013-05-12 21:26:38 +02:00
parent b0dff87093
commit 4d85dad403
19 changed files with 96 additions and 50 deletions

View File

@ -26,7 +26,8 @@ main(int argc, char **argv)
mbus_handle *handle = NULL;
char *host, *addr_str, matching_addr[16], *xml_result;
int port, address;
int address;
long port;
memset((void *)&reply, 0, sizeof(mbus_frame));
memset((void *)&reply_data, 0, sizeof(mbus_frame_data));
@ -34,14 +35,14 @@ main(int argc, char **argv)
if (argc == 4)
{
host = argv[1];
port = atoi(argv[2]);
port = atol(argv[2]);
addr_str = argv[3];
debug = 0;
}
else if (argc == 5 && strcmp(argv[1], "-d") == 0)
{
host = argv[2];
port = atoi(argv[3]);
port = atol(argv[3]);
addr_str = argv[4];
debug = 1;
}
@ -52,6 +53,12 @@ main(int argc, char **argv)
return 0;
}
if ((port < 0) || (port > 0xFFFF))
{
fprintf(stderr, "Invalid port: %ld\n", port);
return 1;
}
if (debug)
{
mbus_register_send_event(&mbus_dump_send_event);