X-Git-Url: http://www.project-moonshot.org/gitweb/?p=trust_router.git;a=blobdiff_plain;f=gsscon%2Ftest%2Fgsscon_server.c;fp=gsscon%2Ftest%2Fgsscon_server.c;h=3ca69c413a0500fc80701e9fc1056a1d4a5c1f79;hp=be56372ace7be70e5134d0febf40557079baf336;hb=6f65c9cce86719147d0b4dcc9823b25443c2d185;hpb=eaa1a8ceed54fbfadc2638cf383aaa12ab446a57 diff --git a/gsscon/test/gsscon_server.c b/gsscon/test/gsscon_server.c index be56372..3ca69c4 100644 --- a/gsscon/test/gsscon_server.c +++ b/gsscon/test/gsscon_server.c @@ -129,6 +129,7 @@ int main (int argc, const char *argv[]) int err = 0; OM_uint32 minorStatus; int port = kDefaultPort; + long tmp; int listenFD = -1; gss_ctx_id_t gssContext = GSS_C_NO_CONTEXT; int i = 0; @@ -136,8 +137,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 at 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], "--service") == 0) && (i < (argc - 1))) { gServiceName = argv[++i]; } else {