got rid of sysexec.h
authorChristian Pointner <equinox@realraum.at>
Thu, 10 Sep 2009 02:14:11 +0000 (02:14 +0000)
committerChristian Pointner <equinox@realraum.at>
Thu, 10 Sep 2009 02:14:11 +0000 (02:14 +0000)
small security fix in log

door_daemon/door_daemon.c
door_daemon/log.c
door_daemon/sysexec.h [deleted file]

index f7bb2f8..6d43007 100644 (file)
@@ -38,7 +38,6 @@
 #include "client_list.h"
 
 #include "daemon.h"
 #include "client_list.h"
 
 #include "daemon.h"
-#include "sysexec.h"
 
 int init_command_socket(const char* path)
 {
 
 int init_command_socket(const char* path)
 {
index 847baf7..8f7deb3 100644 (file)
@@ -250,7 +250,7 @@ void log_print_hex_dump(log_prio_t prio, const u_int8_t* buf, u_int32_t len)
     for(i=0; i < len; i++) {
       if(((i+1)*3) >= (MSG_LENGTH_MAX - offset))
         break;
     for(i=0; i < len; i++) {
       if(((i+1)*3) >= (MSG_LENGTH_MAX - offset))
         break;
-      sprintf(ptr, "%02X ", buf[i]);
+      snprintf(ptr, 3, "%02X ", buf[i]);
       ptr+=3;
     }
   }
       ptr+=3;
     }
   }
diff --git a/door_daemon/sysexec.h b/door_daemon/sysexec.h
deleted file mode 100644 (file)
index b724433..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- *  uAnytun
- *
- *  uAnytun is a tiny implementation of SATP. Unlike Anytun which is a full
- *  featured implementation uAnytun has no support for multiple connections
- *  or synchronisation. It is a small single threaded implementation intended
- *  to act as a client on small platforms.
- *  The secure anycast tunneling protocol (satp) defines a protocol used
- *  for communication between any combination of unicast and anycast
- *  tunnel endpoints.  It has less protocol overhead than IPSec in Tunnel
- *  mode and allows tunneling of every ETHER TYPE protocol (e.g.
- *  ethernet, ip, arp ...). satp directly includes cryptography and
- *  message authentication based on the methodes used by SRTP.  It is
- *  intended to deliver a generic, scaleable and secure solution for
- *  tunneling and relaying of packets of any protocol.
- *  
- *
- *  Copyright (C) 2007-2008 Christian Pointner <equinox@anytun.org>
- *
- *  This file is part of uAnytun.
- *
- *  uAnytun is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License version 3 as
- *  published by the Free Software Foundation.
- *
- *  uAnytun is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with uAnytun. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef _SYSEXEC_H_
-#define _SYSEXEC_H_
-
-int exec_script(const char* script, const char* ifname)
-{
-  if(!script || !ifname)
-    return -1;
-
-  pid_t pid;
-  pid = fork();
-  if(!pid) {
-    int fd;
-    for (fd=getdtablesize();fd>=0;--fd) // close all file descriptors
-      close(fd);
-
-    fd = open("/dev/null",O_RDWR);        // stdin
-    if(fd == -1)
-      log_printf(WARNING,  "can't open stdin");
-    else {
-      if(dup(fd) == -1)   // stdout
-        log_printf(WARNING,  "can't open stdout");
-      if(dup(fd) == -1)   // stderr
-        log_printf(WARNING,  "can't open stderr");
-    }
-    execl("/bin/sh", "/bin/sh", script, ifname, NULL);
-        // if execl return, an error occurred
-    log_printf(ERROR, "error on executing script: %s", strerror(errno));
-    return -1;
-  }
-  int status = 0;
-  waitpid(pid, &status, 0);
-  if(WIFEXITED(status))
-    log_printf(NOTICE, "script '%s' returned %d", script, WEXITSTATUS(status));  
-  else if(WIFSIGNALED(status))
-    log_printf(NOTICE, "script '%s' terminated after signal %d", script, WTERMSIG(status));
-  else
-    log_printf(ERROR, "executing script: unkown error");
-
-  return status;
-
-}
-
-#endif