(mostly trivial) patch to build cleanly on ubuntu-9.04

Andrey Kuzmin <[email protected]>
Newsgroups gmane.comp.compilers.distcc
Message-ID <[email protected]>
Wanted to give distcc-trunk a shot, but building it on my ubuntu box
ended up with a number of warnings. Trivial patch attached.

Regards,
Andrey

__
distcc mailing list            http://distcc.samba.org/
To unsubscribe or change options:
https://lists.samba.org/mailman/listinfo/distcc
distcc-trunk-clean-compilation.patch (text/x-patch, 11.3 KB)
### Eclipse Workspace Patch 1.0
#P distcc-trunk
Index: src/stats.c
===================================================================
--- src/stats.c	(revision 709)
+++ src/stats.c	(working copy)
@@ -103,9 +103,10 @@
 void dcc_stats_event(enum stats_e e) {
     if (arg_stats) {
         struct statsdata sd;
+        int err;
         memset(&sd, 0, sizeof(sd));
         sd.type = e;
-        write(dcc_statspipe[1], &sd, sizeof(sd));
+        err = write(dcc_statspipe[1], &sd, sizeof(sd));
     }
 }
 
@@ -116,6 +117,7 @@
 void dcc_stats_compile_ok(char *compiler, char *filename, int time_usec) {
     if (arg_stats) {
         struct statsdata sd;
+        int err;
         memset(&sd, 0, sizeof(sd));
 
         sd.type = STATS_COMPILE_OK;
@@ -123,7 +125,7 @@
         sd.time = time_usec;
         strncpy(sd.filename, filename, MAX_FILENAME_LEN);
         strncpy(sd.compiler, compiler, MAX_FILENAME_LEN);
-        write(dcc_statspipe[1], &sd, sizeof(sd));
+        err = write(dcc_statspipe[1], &sd, sizeof(sd));
     }
 }
 
@@ -303,8 +305,9 @@
                                dcc_stats.io_rate,
                                free_space_mb);
         dcc_set_nonblocking(acc_fd);
-        read(acc_fd, challenge, 1024); /* empty the receive queue */
-        write(acc_fd, reply, reply_len);
+        int err;
+        err = read(acc_fd, challenge, 1024); /* empty the receive queue */
+        err = write(acc_fd, reply, reply_len);
     }
 
     /* Don't think we need this to prevent RST anymore, since we read() now */
Index: src/srvrpc.c
===================================================================
--- src/srvrpc.c	(revision 709)
+++ src/srvrpc.c	(working copy)
@@ -87,8 +87,7 @@
 static int prepend_dir_to_name(const char *dirname, char **path)
 {
     char *buf;
-    asprintf(&buf, "%s%s", dirname, *path);
-    if (buf == NULL) {
+    if (asprintf(&buf, "%s%s", dirname, *path) < 0) {
             return EXIT_OUT_OF_MEMORY;
     }
     free(*path);
Index: src/util.c
===================================================================
--- src/util.c	(revision 709)
+++ src/util.c	(working copy)
@@ -418,6 +418,7 @@
 char *dcc_abspath(const char *path, int path_len)
 {
     static char buf[MAXPATHLEN];
+    char *ret;
     unsigned len;
     char *p, *slash;
 
@@ -425,7 +426,7 @@
         len = 0;
     else {
 #ifdef HAVE_GETCWD
-        getcwd(buf, sizeof buf);
+        ret = getcwd(buf, sizeof buf);
 #else
         getwd(buf);
 #endif
@@ -634,12 +635,12 @@
 /* Returns the number of sector read/writes since boot */
 void dcc_get_disk_io_stats(int *n_reads, int *n_writes) {
 #if defined(linux)
-    int retval;
+    int retval, res;
     int kernel26 = 1;
     FILE *f;
     int reads, writes, minor;
     char dev[100];
-    char tmp[1024];
+    char tmp[1024], *tmpp;
 
     *n_reads = 0;
     *n_writes = 0;
@@ -658,7 +659,7 @@
     }
 
     if (!kernel26) /* blast away 2 header lines in /proc/partitions */
-        fscanf(f, "%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s");
+        res = fscanf(f, "%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s");
 
     while (1) {
         if (kernel26)
@@ -689,7 +690,7 @@
                 break;
 #endif
             /* assume the lines aren't longer that 1024 characters */
-            fgets(tmp, 1024, f);
+            tmpp = fgets(tmp, 1024, f);
         }
     }
 
Index: src/trace.c
===================================================================
--- src/trace.c	(revision 709)
+++ src/trace.c	(working copy)
@@ -319,6 +319,7 @@
     /* NOTE NO TRAILING NUL */
     char buf[4090];
     size_t len;
+    int res;
 
     rs_format_msg(buf, sizeof buf, flags, fn, fmt, va);
 
@@ -327,7 +328,7 @@
         len = (int) sizeof buf - 2;
     strcpy(&buf[len], "\n");
 
-    (void) write(log_fd, buf, len+1);
+    res = write(log_fd, buf, len+1);
 }
 
 
Index: src/serve.c
===================================================================
--- src/serve.c	(revision 709)
+++ src/serve.c	(working copy)
@@ -431,11 +431,10 @@
                 if (argv[i] != NULL) {  /* in case of a dangling -I */
                     if (argv[i][index_of_first_filename_char] == '/') {
                         char *buf;
-                        asprintf(&buf, "%s%s%s",
+                        if (asprintf(&buf, "%s%s%s",
                                  include_option,
                                  root_dir,
-                                 argv[i] + index_of_first_filename_char);
-                        if (buf == NULL) {
+                                 argv[i] + index_of_first_filename_char) < 0) {
                             return EXIT_OUT_OF_MEMORY;
                         }
                         free(argv[i]);
@@ -544,8 +543,7 @@
         if ((ret = dcc_r_cwd(in_fd, client_side_cwd)))
             return ret;
 
-        asprintf(server_side_cwd, "%s%s", *temp_dir, *client_side_cwd);
-        if (*server_side_cwd == NULL) {
+        if (asprintf(server_side_cwd, "%s%s", *temp_dir, *client_side_cwd) < 0) {
             ret = EXIT_OUT_OF_MEMORY;
         } else if ((ret = dcc_mk_tmp_ancestor_dirs(*server_side_cwd))) {
             ; /* leave ret the way it is */
@@ -774,9 +772,11 @@
         dcc_stats_event(job_result);
     }
 
-    asprintf(&time_str, " exit:%d sig:%d core:%d ret:%d time:%dms ", WEXITSTATUS(status), WTERMSIG(status), WCOREDUMP(status), ret, time_ms);
-    dcc_job_summary_append(time_str);
-    free(time_str);
+    if (asprintf(&time_str, " exit:%d sig:%d core:%d ret:%d time:%dms ", \
+    		WEXITSTATUS(status), WTERMSIG(status), WCOREDUMP(status), ret, time_ms) > 0) {
+    	dcc_job_summary_append(time_str);
+    	free(time_str);
+    }
 
     /* append compiler and input file info */
     if (job_result == STATS_COMPILE_ERROR
Index: src/netutil.c
===================================================================
--- src/netutil.c	(revision 709)
+++ src/netutil.c	(working copy)
@@ -193,23 +193,28 @@
                            size_t UNUSED(salen),
                            char **p_buf)
 {
+	int err = 0;
     if (!sa) {
         *p_buf = strdup("NOTSOCKET");
-        return 0;
+        goto out;
     } else if (sa->sa_family == AF_INET) {
         /* The double-cast here suppresses warnings from -Wcast-align. */
         struct sockaddr_in *sain = (struct sockaddr_in *) (void *) sa;
 
-        asprintf(p_buf, "%s:%d", inet_ntoa(sain->sin_addr),
-                 ntohs(sain->sin_port));
+        if ((err = asprintf(p_buf, "%s:%d", inet_ntoa(sain->sin_addr),
+                 ntohs(sain->sin_port))) < 0)
+        	goto out;
     } else if (sa->sa_family == AF_UNIX) {
         /* NB: The word 'sun' is predefined on Solaris */
         struct sockaddr_un *sa_un = (struct sockaddr_un *) sa;
-        asprintf(p_buf, "UNIX-DOMAIN %s", sa_un->sun_path);
+        if ((err = asprintf(p_buf, "UNIX-DOMAIN %s", sa_un->sun_path)) < 0)
+        	goto out;
     } else {
-        asprintf(p_buf, "UNKNOWN-FAMILY %d", sa->sa_family);
+        if ((err = asprintf(p_buf, "UNKNOWN-FAMILY %d", sa->sa_family)) < 0)
+        	goto out;
     }
-
-    return 0;
+    err = 0;
+out:
+    return err;
 }
 #endif /* ndef ENABLE_RFC2553 */
Index: src/mon.c
===================================================================
--- src/mon.c	(revision 709)
+++ src/mon.c	(working copy)
@@ -259,7 +259,9 @@
         return 0;
     }
 
-    asprintf(&fullpath, "%s/%s", dirname, filename);
+    if ((ret = asprintf(&fullpath, "%s/%s", dirname, filename)) < 0) {
+    	return ret;
+    }
     rs_trace("process %s", fullpath);
 
     /* Remember that the file might disappear at any time, so open it
Index: src/hosts.c
===================================================================
--- src/hosts.c	(revision 709)
+++ src/hosts.c	(working copy)
@@ -157,7 +157,7 @@
 {
     char *env;
     char *path, *top;
-    int ret;
+    int err, ret;
 
     *ret_list = NULL;
     *ret_nhosts = 0;
@@ -171,7 +171,7 @@
     if ((ret = dcc_get_top_dir(&top)) == 0) {
         /* if we failed to get it, just warn */
 
-        asprintf(&path, "%s/hosts", top);
+        err = asprintf(&path, "%s/hosts", top);
         if (access(path, R_OK) == 0) {
             ret = dcc_parse_hosts_file(path, ret_list, ret_nhosts);
             free(path);
@@ -182,7 +182,7 @@
         }
     }
 
-    asprintf(&path, "%s/distcc/hosts", SYSCONFDIR);
+    err = asprintf(&path, "%s/distcc/hosts", SYSCONFDIR);
     if (access(path, R_OK) == 0) {
         ret = dcc_parse_hosts_file(path, ret_list, ret_nhosts);
         free(path);
Index: src/emaillog.c
===================================================================
--- src/emaillog.c	(revision 709)
+++ src/emaillog.c	(working copy)
@@ -90,15 +90,22 @@
   if (dcc_open_read(fname, &in_fd, &fsize))
       return 1;
 
-  write(email_fileno, begin, strlen(begin));
-  write(email_fileno, description, strlen(description));
-  write(email_fileno, "\n", 1);
+  if (write(email_fileno, begin, strlen(begin)) < (int) strlen(begin) ||
+	  write(email_fileno, description, strlen(description)) < (int) strlen(description) ||
+	  write(email_fileno, "\n", 1) < 1) {
+		  perror("write");
+		  return 1;
+  }
 
   dcc_pump_readwrite(email_fileno, in_fd, fsize);
 
-  write(email_fileno, end, strlen(end));
-  write(email_fileno, description, strlen(description));
-  write(email_fileno, "\n", 1);
+  if (write(email_fileno, end, strlen(end)) < (int) strlen(end) ||
+		  /* Really need a duplicate? */
+      write(email_fileno, description, strlen(description)) < (int) strlen(description) ||
+      write(email_fileno, "\n", 1) < 1) {
+    	  perror("write");
+    	  return 1;
+   }
 
   close(in_fd);
 
@@ -118,10 +125,16 @@
   if (should_send_email == 0) return;
   if (never_send_email) return;
 
-  asprintf(&will_send_message_to, will_send_message_format, whom_to_blame);
-  asprintf(&cant_send_message_to, cant_send_message_format, whom_to_blame);
+  if (asprintf(&will_send_message_to, will_send_message_format, whom_to_blame) < 0) {
+	  perror("asprintf");
+	  return;
+  }
+  if (asprintf(&cant_send_message_to, cant_send_message_format, whom_to_blame) < 0) {
+	  perror("asprintf");
+	  return;
+  }
 
-  rs_log_warning(will_send_message_to);
+  rs_log_warning("%s", will_send_message_to);
   free(will_send_message_to);
 
   if (email_fileno < 0) {
Index: src/dotd.c
===================================================================
--- src/dotd.c	(revision 709)
+++ src/dotd.c	(working copy)
@@ -253,6 +253,7 @@
 
         char *extension;
         char *tmp_dotd_fname;
+
         ret = dcc_scan_args(argv, &input_file, &output_file, &new_args);
         /* if .o is set, just append .d.
          * otherwise, take the basename of the input, and set the suffix to .d */
@@ -271,14 +272,12 @@
           *dotd_fname = tmp_dotd_fname;
         }
         else { /* There is no extension (or name ends with a "."). */
-          if (tmp_dotd_fname[strlen(tmp_dotd_fname) - 1] == '.')
-            asprintf(dotd_fname, "%s%s", tmp_dotd_fname, "d");
-          else
-            asprintf(dotd_fname, "%s%s", tmp_dotd_fname, ".d");
-          if (*dotd_fname == NULL) {
-            return EXIT_OUT_OF_MEMORY;
-          }
-          free(tmp_dotd_fname);
+
+            if (asprintf(dotd_fname, "%s%s", tmp_dotd_fname,
+            		tmp_dotd_fname[strlen(tmp_dotd_fname) - 1] == '.' ? "d": ".d") < 0) {
+            	return EXIT_OUT_OF_MEMORY;
+            }
+            free(tmp_dotd_fname);
         }
         return 0;
     }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.