diff options
Diffstat (limited to 'src/nat')
-rw-r--r-- | src/nat/gnunet-helper-nat-server.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/nat/gnunet-helper-nat-server.c b/src/nat/gnunet-helper-nat-server.c index 583a2f082..e57319d00 100644 --- a/src/nat/gnunet-helper-nat-server.c +++ b/src/nat/gnunet-helper-nat-server.c | |||
@@ -434,7 +434,7 @@ make_icmp_socket () | |||
434 | { | 434 | { |
435 | fprintf (stderr, "Socket number too large (%d > %u)\n", ret, | 435 | fprintf (stderr, "Socket number too large (%d > %u)\n", ret, |
436 | (unsigned int) FD_SETSIZE); | 436 | (unsigned int) FD_SETSIZE); |
437 | close (ret); | 437 | (void) close (ret); |
438 | return -1; | 438 | return -1; |
439 | } | 439 | } |
440 | return ret; | 440 | return ret; |
@@ -462,14 +462,14 @@ make_raw_socket () | |||
462 | setsockopt (ret, SOL_SOCKET, SO_BROADCAST, (char *) &one, sizeof (one))) | 462 | setsockopt (ret, SOL_SOCKET, SO_BROADCAST, (char *) &one, sizeof (one))) |
463 | { | 463 | { |
464 | fprintf (stderr, "setsockopt failed: %s\n", strerror (errno)); | 464 | fprintf (stderr, "setsockopt failed: %s\n", strerror (errno)); |
465 | close (ret); | 465 | (void) close (ret); |
466 | return -1; | 466 | return -1; |
467 | } | 467 | } |
468 | if (-1 == | 468 | if (-1 == |
469 | setsockopt (ret, IPPROTO_IP, IP_HDRINCL, (char *) &one, sizeof (one))) | 469 | setsockopt (ret, IPPROTO_IP, IP_HDRINCL, (char *) &one, sizeof (one))) |
470 | { | 470 | { |
471 | fprintf (stderr, "setsockopt failed: %s\n", strerror (errno)); | 471 | fprintf (stderr, "setsockopt failed: %s\n", strerror (errno)); |
472 | close (ret); | 472 | (void) close (ret); |
473 | return -1; | 473 | return -1; |
474 | } | 474 | } |
475 | return ret; | 475 | return ret; |
@@ -506,7 +506,7 @@ make_udp_socket (const struct in_addr *my_ip) | |||
506 | { | 506 | { |
507 | fprintf (stderr, "Error binding UDP socket to port %u: %s\n", NAT_TRAV_PORT, | 507 | fprintf (stderr, "Error binding UDP socket to port %u: %s\n", NAT_TRAV_PORT, |
508 | strerror (errno)); | 508 | strerror (errno)); |
509 | close (ret); | 509 | (void) close (ret); |
510 | return -1; | 510 | return -1; |
511 | } | 511 | } |
512 | return ret; | 512 | return ret; |
@@ -544,7 +544,7 @@ main (int argc, char *const *argv) | |||
544 | } | 544 | } |
545 | if (-1 == (rawsock = make_raw_socket ())) | 545 | if (-1 == (rawsock = make_raw_socket ())) |
546 | { | 546 | { |
547 | close (icmpsock); | 547 | (void) close (icmpsock); |
548 | return 4; | 548 | return 4; |
549 | } | 549 | } |
550 | uid = getuid (); | 550 | uid = getuid (); |
@@ -552,19 +552,23 @@ main (int argc, char *const *argv) | |||
552 | if (0 != setresuid (uid, uid, uid)) | 552 | if (0 != setresuid (uid, uid, uid)) |
553 | { | 553 | { |
554 | fprintf (stderr, "Failed to setresuid: %s\n", strerror (errno)); | 554 | fprintf (stderr, "Failed to setresuid: %s\n", strerror (errno)); |
555 | (void) close (icmpsock); | ||
556 | (void) close (rawsock); | ||
555 | return 5; | 557 | return 5; |
556 | } | 558 | } |
557 | #else | 559 | #else |
558 | if (0 != (setuid (uid) | seteuid (uid))) | 560 | if (0 != (setuid (uid) | seteuid (uid))) |
559 | { | 561 | { |
560 | fprintf (stderr, "Failed to setuid: %s\n", strerror (errno)); | 562 | fprintf (stderr, "Failed to setuid: %s\n", strerror (errno)); |
563 | (void) close (icmpsock); | ||
564 | (void) close (rawsock); | ||
561 | return 6; | 565 | return 6; |
562 | } | 566 | } |
563 | #endif | 567 | #endif |
564 | if (-1 == (udpsock = make_udp_socket (&external))) | 568 | if (-1 == (udpsock = make_udp_socket (&external))) |
565 | { | 569 | { |
566 | close (icmpsock); | 570 | (void) close (icmpsock); |
567 | close (rawsock); | 571 | (void) close (rawsock); |
568 | return 7; | 572 | return 7; |
569 | } | 573 | } |
570 | alt = 0; | 574 | alt = 0; |
@@ -591,9 +595,9 @@ main (int argc, char *const *argv) | |||
591 | send_udp (); | 595 | send_udp (); |
592 | } | 596 | } |
593 | /* select failed (internal error or OS out of resources) */ | 597 | /* select failed (internal error or OS out of resources) */ |
594 | close (icmpsock); | 598 | (void) close (icmpsock); |
595 | close (rawsock); | 599 | (void) close (rawsock); |
596 | close (udpsock); | 600 | (void) close (udpsock); |
597 | return 8; | 601 | return 8; |
598 | } | 602 | } |
599 | 603 | ||