Use ast_safe_system() in logger.c instead of system()
authorMatthew Nicholson <mnicholson@digium.com>
Fri, 9 Jan 2009 16:32:34 +0000 (16:32 +0000)
committerMatthew Nicholson <mnicholson@digium.com>
Fri, 9 Jan 2009 16:32:34 +0000 (16:32 +0000)
(closes issue #14194)
Reported by: pabelanger

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168014 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/logger.c

index 8a577ed..1be97fc 100644 (file)
@@ -74,6 +74,7 @@ static int syslog_level_map[] = {
 #include "asterisk/threadstorage.h"
 #include "asterisk/strings.h"
 #include "asterisk/pbx.h"
+#include "asterisk/app.h"
 
 #if defined(__linux__) && !defined(__NR_gettid)
 #include <asm/unistd.h>
@@ -576,8 +577,8 @@ static int rotate_file(const char *filename)
                char buf[512];
                pbx_builtin_setvar_helper(c, "filename", filename);
                pbx_substitute_variables_helper(c, exec_after_rotate, buf, sizeof(buf));
-               if (system(buf) < 0) {
-                       ast_log(LOG_WARNING, "system() failed for '%s': %s\n", buf, strerror(errno));
+               if (ast_safe_system(buf) != -1) {
+                       ast_log(LOG_WARNING, "error executing '%s'\n", buf);
                }
                ast_channel_free(c);
        }