X-Git-Url: http://www.project-moonshot.org/gitweb/?p=trust_router.git;a=blobdiff_plain;f=gsscon%2Ftest%2Fgsscon_client.c;fp=gsscon%2Ftest%2Fgsscon_client.c;h=c2815d2d5dfb641e66bd0c2fc5721160bb80856d;hp=37430eeefbbf972bca5052f0eb0576d2934d913b;hb=6f65c9cce86719147d0b4dcc9823b25443c2d185;hpb=eaa1a8ceed54fbfadc2638cf383aaa12ab446a57 diff --git a/gsscon/test/gsscon_client.c b/gsscon/test/gsscon_client.c index 37430ee..c2815d2 100644 --- a/gsscon/test/gsscon_client.c +++ b/gsscon/test/gsscon_client.c @@ -68,6 +68,7 @@ int main (int argc, const char *argv[]) int err = 0; int fd = -1; int port = kDefaultPort; + long tmp; const char *server = "127.0.0.1"; const char *clientName = NULL; const char *serviceName = "host"; @@ -77,8 +78,14 @@ int main (int argc, const char *argv[]) for (i = 1; (i < argc) && !err; i++) { if ((strcmp (argv[i], "--port") == 0) && (i < (argc - 1))) { - port = strtol (argv[++i], NULL, 0); - if (port == 0) { err = errno; } + errno = 0; /* ensure this starts off as 0 */ + tmp = strtol (argv[++i], NULL, 0); + if (errno) + err = errno; + else if ((tmp <= 0) || (tmp > 65535)) + err = ERANGE; + else + port = (int) tmp; } else if ((strcmp (argv[i], "--server") == 0) && (i < (argc - 1))) { server = argv[++i]; } else if ((strcmp(argv[i], "--cprinc") == 0) && (i < (argc - 1))) { @@ -93,7 +100,7 @@ int main (int argc, const char *argv[]) if (!err) { printf ("%s: Starting up...\n", argv[0]); - err = gsscon_connect (server, port, serviceName, &fd, &gssContext); + err = gsscon_connect (server, (unsigned int) port, serviceName, &fd, &gssContext); } if (!err) {