From 4473dc558828a94e9e251c302235358af1d08712 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 25 Jan 2016 03:56:11 -0500
Subject: [PATCH] Merge branch 'master' of github.com:roundcube/roundcubemail

---
 plugins/password/helpers/chgdbmailusers.c |   25 +++----------------------
 1 files changed, 3 insertions(+), 22 deletions(-)

diff --git a/plugins/password/helpers/chgdbmailusers.c b/plugins/password/helpers/chgdbmailusers.c
index 28f79c1..0f2fda9 100644
--- a/plugins/password/helpers/chgdbmailusers.c
+++ b/plugins/password/helpers/chgdbmailusers.c
@@ -1,11 +1,9 @@
 #include <stdio.h>
-#include <string.h>
 #include <unistd.h>
 
 // set the UID this script will run as (root user)
 #define UID 0
 #define CMD "/usr/sbin/dbmail-users"
-#define RCOK 0x100
 
 /* INSTALLING:
   gcc -o chgdbmailusers chgdbmailusers.c
@@ -16,29 +14,12 @@
 
 main(int argc, char *argv[])
 {
-  int cnt,rc,cc;
-  char cmnd[255];
-
-  strcpy(cmnd, CMD);
-
-  if (argc > 1)
-  {
-    for (cnt = 1; cnt < argc; cnt++)
-    {
-      strcat(cmnd, " ");
-      strcat(cmnd, argv[cnt]);
-    }
-  }
-  else
-  {
-    fprintf(stderr, "__ %s:  failed %d  %d\n", argv[0], rc, cc);
-    return 255;
-  }
+  int rc, cc;
 
   cc = setuid(UID);
-  rc = system(cmnd);
+  rc = execvp(CMD, argv);
 
-  if ((rc != RCOK) || (cc != 0))
+  if ((rc != 0) || (cc != 0))
   {
     fprintf(stderr, "__ %s:  failed %d  %d\n", argv[0], rc, cc);
     return 1;

--
Gitblit v1.9.1