]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
redirect /sbin/service sshd condrestart std{out,err} to /dev/null when executed from...
authorJakub Jelinek <jakub@redhat.com>
Thu, 3 Aug 2006 18:17:21 +0000 (18:17 +0000)
committerJakub Jelinek <jakub@redhat.com>
Thu, 3 Aug 2006 18:17:21 +0000 (18:17 +0000)
fedora/glibc.spec.in
fedora/glibc_post_upgrade.c

index 72089575e11a820f4f86b56d3e4f2832354fe611..67a6b71b7e2c0107a7da86ceb614aec333081e4d 100644 (file)
@@ -1439,6 +1439,8 @@ rm -f *.filelist*
 
 %changelog
 - fix memusage and xtrace scripts (#200736)
+- redirect /sbin/service sshd condrestart std{out,err} to /dev/null
+  when executed from glibc_post_upgrade
 
 * Wed Aug  2 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-17
 - typo fix for the dladdr patch
index d33d6775df26cb1bb9d58b1e1d85eefd378092b2..cde931bde38753d22ae0c8a3b83c8a39343905be 100644 (file)
@@ -145,7 +145,7 @@ main (void)
       && access ("/bin/bash", X_OK) == 0)
     {
       if (check_elf ("/usr/sbin/sshd"))
-       verbose_exec (121, "/sbin/service", "/sbin/service", "sshd", "condrestart");
+       verbose_exec (-121, "/sbin/service", "/sbin/service", "sshd", "condrestart");
     }
 
   _exit(0);
@@ -210,10 +210,23 @@ vexec (int failcode, char *const path[])
 {
   pid_t pid;
   int status, save_errno;
+  int devnull = 0;
 
+  if (failcode < 0)
+    {
+      devnull = 1;
+      failcode = -failcode;
+    }
   pid = vfork ();
   if (pid == 0)
-    {  
+    {
+      int fd;
+      if (devnull && (fd = open ("/dev/null", O_WRONLY)) >= 0)
+       {
+         dup2 (fd, 1);
+         dup2 (fd, 2);
+         close (fd);
+       }
       execv (path[0], path + 1);
       save_errno = errno;
       message (path);