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
### 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;
}
__
distcc mailing list http://distcc.samba.org/
To unsubscribe or change options:
https://lists.samba.org/mailman/listinfo/distcc