From 5302b35b88e5b7a5997608c7cc960915cfb5353c Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 10 Sep 2009 02:14:11 +0000 Subject: [PATCH] got rid of sysexec.h small security fix in log --- door_daemon/door_daemon.c | 1 - door_daemon/log.c | 2 +- door_daemon/sysexec.h | 77 --------------------------------------------- 3 files changed, 1 insertion(+), 79 deletions(-) delete mode 100644 door_daemon/sysexec.h diff --git a/door_daemon/door_daemon.c b/door_daemon/door_daemon.c index f7bb2f8..6d43007 100644 --- a/door_daemon/door_daemon.c +++ b/door_daemon/door_daemon.c @@ -38,7 +38,6 @@ #include "client_list.h" #include "daemon.h" -#include "sysexec.h" int init_command_socket(const char* path) { diff --git a/door_daemon/log.c b/door_daemon/log.c index 847baf7..8f7deb3 100644 --- a/door_daemon/log.c +++ b/door_daemon/log.c @@ -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; - sprintf(ptr, "%02X ", buf[i]); + snprintf(ptr, 3, "%02X ", buf[i]); ptr+=3; } } diff --git a/door_daemon/sysexec.h b/door_daemon/sysexec.h deleted file mode 100644 index b724433..0000000 --- a/door_daemon/sysexec.h +++ /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 - * - * 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 . - */ - -#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 -- 1.7.10.4