dtcm: Resolve CID 87408
[oweals/cde.git] / cde / programs / dtcm / dtcm / submit.c
index abe22f414828e085056a6c90f73072a101c61756..265fd42a1247ba7b0fbd1c4f3dd2777bdfdeae97 100644 (file)
@@ -1,3 +1,25 @@
+/*
+ * CDE - Common Desktop Environment
+ *
+ * Copyright (c) 1993-2012, The Open Group. All rights reserved.
+ *
+ * These libraries and programs are free software; you can
+ * redistribute them and/or modify them under the terms of the GNU
+ * Lesser General Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * These libraries and programs are distributed in the hope that
+ * they will be useful, but WITHOUT ANY WARRANTY; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with these librararies and programs; if not, write
+ * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+ * Floor, Boston, MA 02110-1301 USA
+ */
 /*******************************************************************************
 **
 **  submit.c
@@ -32,6 +54,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <stdlib.h>
+#include <errno.h>
 #include <sys/wait.h>
 #include <LocaleXlate.h>
 #include <RFCMIME.h>
@@ -350,7 +373,10 @@ deliver(char ** addrs, char * msg)
     }
     argv[cp + 1] = NULL;
 
-    pipe(fd);
+    if(-1 == pipe(fd)) {
+       fprintf(stderr, "pipe() failed %d '%s'\n", errno, strerror(errno));
+       exit(EXIT_FAILURE);    
+    }
 
     c_pid = fork();
     if (c_pid < 0) {
@@ -364,7 +390,10 @@ deliver(char ** addrs, char * msg)
        _exit(1); /* This had better never happen! */
     }
     else { /* The parent. */
-       write(fd[1], msg, strlen(msg));
+       if(-1 == write(fd[1], msg, strlen(msg))) {
+           fprintf(stderr, "write() failed %d '%s'\n", errno, strerror(errno));
+           exit(EXIT_FAILURE);    
+       }
        close(fd[0]);
        close(fd[1]);