aboutsummaryrefslogtreecommitdiff
path: root/src/nat
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-12-16 18:44:53 +0000
committerChristian Grothoff <christian@grothoff.org>2011-12-16 18:44:53 +0000
commit1f85e67c62031b79d7f9607f0ac4bcd1a5a04704 (patch)
tree78763e4a8590b81dc9a131a47fc1b381b6f956f8 /src/nat
parent6853afe24f91945f44593fa039b80a21dfd55e8d (diff)
downloadgnunet-1f85e67c62031b79d7f9607f0ac4bcd1a5a04704.tar.gz
gnunet-1f85e67c62031b79d7f9607f0ac4bcd1a5a04704.zip
-cast returns from close to void to indicate that we intentionally ignore them, close socket on new error paths
Diffstat (limited to 'src/nat')
-rw-r--r--src/nat/gnunet-helper-nat-server.c24
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