]> jfr.im git - irc/quakenet/newserv.git/blobdiff - nterfacer/nterfacer.c
BUILD: add require-all build mode
[irc/quakenet/newserv.git] / nterfacer / nterfacer.c
index 9b644c276cf8df035337efbfd699a8ec8606e7ca..45a754885b3304052d68e63542496bcf7b1a7956 100644 (file)
@@ -17,6 +17,7 @@
 #include <strings.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include <stdint.h>
 
 #include "../lib/sstring.h"
 #include "../lib/irc_string.h"
@@ -251,6 +252,7 @@ int setup_listening_socket(void) {
   
   if(bind(fd, (struct sockaddr *) &sin, sizeof(sin))) {
     nterface_log(nrl, NL_ERROR, "Unable to bind listen socket (%d).", errno);
+    close(fd);
     return -1;
   }
   
@@ -258,6 +260,7 @@ int setup_listening_socket(void) {
   
   if(ioctl(fd, FIONBIO, &opt)) {
     nterface_log(nrl, NL_ERROR, "Unable to set listen socket non-blocking.");
+    close(fd);
     return -1;
   }
   
@@ -359,6 +362,7 @@ void nterfacer_accept_event(struct esocket *socket) {
 
   if(ioctl(newfd, FIONBIO, &opt)) {
     nterface_log(nrl, NL_ERROR, "Unable to set accepted socket non-blocking.");
+    close(newfd);
     return;
   }
   
@@ -553,13 +557,13 @@ int nterfacer_new_rline(char *line, struct esocket *socket, int *number) {
     if(*p == ',')
       break;
 
-  if(!*p || !(p + 1))
+  if(!*p || !*(p + 1))
     return RE_BAD_LINE;
   
   *p = '\0';
   *number = positive_atoi(sp + 1);
   
-  if((*number < 1) || (*number > 0xffff))
+  if((*number < 1) || (*number > INT32_MAX))
     return RE_BAD_LINE;
 
   if (!service) {
@@ -602,7 +606,6 @@ int nterfacer_new_rline(char *line, struct esocket *socket, int *number) {
   if(argcount) {
     parsebuf = (char *)ntmalloc(strlen(pp) + 1);
     MemCheckR(parsebuf, RE_MEM_ERROR);
-    newp = parsebuf;
   
     for(newp=args[0]=parsebuf,pp++;*pp;pp++) {
       if((*pp == '\\') && *(pp + 1)) {