* [PATCH iproute2 v2 1/2] ss: Fix compiler errors of unused return-values
2013-07-22 17:24 [PATCH iproute2 v2 0/2] Fix compiler-errors with gcc 4.7.3 Christoph Paasch
@ 2013-07-22 17:24 ` Christoph Paasch
2013-07-22 17:24 ` [PATCH iproute2 v2 2/2] lnstat: " Christoph Paasch
2013-07-22 17:34 ` [PATCH iproute2 v2 0/2] Fix compiler-errors with gcc 4.7.3 Stephen Hemminger
2 siblings, 0 replies; 6+ messages in thread
From: Christoph Paasch @ 2013-07-22 17:24 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: netdev
Many errors when compiling with gcc 4.7.3 about unused return-values
upon the calls to fgets and fscanf:
ss.c: In function ‘user_ent_hash_build’:
ss.c:305:12: error: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Werror=unused-result]
ss.c: In function ‘get_slabstat’:
ss.c:387:7: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Werror=unused-result]
ss.c: In function ‘init_service_resolver’:
ss.c:511:8: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Werror=unused-result]
ss.c: In function ‘run_ssfilter’:
ss.c:728:11: error: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Werror=unused-result]
ss.c: In function ‘is_ephemeral’:
ss.c:550:10: error: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Werror=unused-result]
ss.c: In function ‘netlink_show’:
ss.c:2836:7: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Werror=unused-result]
ss.c: In function ‘packet_show’:
ss.c:2630:7: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Werror=unused-result]
ss.c: In function ‘unix_show’:
ss.c:2364:7: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Werror=unused-result]
cc1: all warnings being treated as errors
make[1]: *** [ss.o] Error 1
make[1]: Leaving directory `/home/christoph/workspace/linux/iproute2/misc'
make: *** [all] Error 2
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
---
Notes:
v2: Add an error-message if fscanf fails, as suggested by Stephen Hemminger
misc/ss.c | 33 ++++++++++++++++++++++++---------
1 file changed, 24 insertions(+), 9 deletions(-)
diff --git a/misc/ss.c b/misc/ss.c
index c0369f1..be86223 100644
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -302,7 +302,8 @@ static void user_ent_hash_build(void)
snprintf(tmp, sizeof(tmp), "%s/%d/stat", root, pid);
if ((fp = fopen(tmp, "r")) != NULL) {
- fscanf(fp, "%*d (%[^)])", process);
+ if (fscanf(fp, "%*d (%[^)])", process) == EOF)
+ perror("Could not parse process:");
fclose(fp);
}
}
@@ -384,7 +385,10 @@ static int get_slabstat(struct slabstat *s)
cnt = sizeof(*s)/sizeof(int);
- fgets(buf, sizeof(buf), fp);
+ if (!fgets(buf, sizeof(buf), fp)) {
+ fclose(fp);
+ return -1;
+ }
while(fgets(buf, sizeof(buf), fp) != NULL) {
int i;
for (i=0; i<sizeof(slabstat_ids)/sizeof(slabstat_ids[0]); i++) {
@@ -508,7 +512,10 @@ static void init_service_resolver(void)
char buf[128];
FILE *fp = popen("/usr/sbin/rpcinfo -p 2>/dev/null", "r");
if (fp) {
- fgets(buf, sizeof(buf), fp);
+ if (!fgets(buf, sizeof(buf), fp)) {
+ pclose(fp);
+ return;
+ }
while (fgets(buf, sizeof(buf), fp) != NULL) {
unsigned int progn, port;
char proto[128], prog[128];
@@ -547,8 +554,8 @@ static int is_ephemeral(int port)
if (!ip_local_port_min) {
FILE *f = ephemeral_ports_open();
if (f) {
- fscanf(f, "%d %d",
- &ip_local_port_min, &ip_local_port_max);
+ if (fscanf(f, "%d %d", &ip_local_port_min, &ip_local_port_max) == EOF)
+ perror("Could not parse port-range:");
fclose(f);
} else {
ip_local_port_min = 1024;
@@ -725,7 +732,8 @@ static int run_ssfilter(struct ssfilter *f, struct tcpstat *s)
if (!low) {
FILE *fp = ephemeral_ports_open();
if (fp) {
- fscanf(fp, "%d%d", &low, &high);
+ if (fscanf(fp, "%d%d", &low, &high) == EOF)
+ perror("Could not parse port-range:");
fclose(fp);
}
}
@@ -2361,7 +2369,10 @@ static int unix_show(struct filter *f)
if ((fp = net_unix_open()) == NULL)
return -1;
- fgets(buf, sizeof(buf)-1, fp);
+ if (!fgets(buf, sizeof(buf)-1, fp)) {
+ fclose(fp);
+ return -1;
+ }
if (memcmp(buf, "Peer", 4) == 0)
newformat = 1;
@@ -2627,7 +2638,10 @@ static int packet_show(struct filter *f)
if ((fp = net_packet_open()) == NULL)
return -1;
- fgets(buf, sizeof(buf)-1, fp);
+ if (!fgets(buf, sizeof(buf)-1, fp)) {
+ fclose(fp);
+ return -1;
+ }
while (fgets(buf, sizeof(buf)-1, fp)) {
sscanf(buf, "%llx %*d %d %x %d %d %u %u %u",
@@ -2833,7 +2847,8 @@ static int netlink_show(struct filter *f)
if ((fp = net_netlink_open()) == NULL)
return -1;
- fgets(buf, sizeof(buf)-1, fp);
+ if (!fgets(buf, sizeof(buf)-1, fp))
+ return -1;
while (fgets(buf, sizeof(buf)-1, fp)) {
sscanf(buf, "%llx %d %d %x %d %d %llx %d",
--
1.8.1.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH iproute2 v2 2/2] lnstat: Fix compiler errors of unused return-values
2013-07-22 17:24 [PATCH iproute2 v2 0/2] Fix compiler-errors with gcc 4.7.3 Christoph Paasch
2013-07-22 17:24 ` [PATCH iproute2 v2 1/2] ss: Fix compiler errors of unused return-values Christoph Paasch
@ 2013-07-22 17:24 ` Christoph Paasch
2013-07-26 21:29 ` Stephen Hemminger
2013-07-22 17:34 ` [PATCH iproute2 v2 0/2] Fix compiler-errors with gcc 4.7.3 Stephen Hemminger
2 siblings, 1 reply; 6+ messages in thread
From: Christoph Paasch @ 2013-07-22 17:24 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: netdev
Many errors when compiling with gcc 4.7.3 about unused return-values
upon the calls to fgets:
lnstat_util.c: In function ‘lnstat_scan_fields’:
lnstat_util.c:145:7: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Werror=unused-result]
lnstat_util.c: In function ‘lnstat_update’:
lnstat_util.c:97:10: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Werror=unused-result]
lnstat_util.c:111:9: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Werror=unused-result]
lnstat_util.c: In function ‘scan_lines’:
lnstat_util.c:52:8: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Werror=unused-result]
cc1: all warnings being treated as errors
make[1]: *** [lnstat_util.o] Error 1
make[1]: Leaving directory `/home/christoph/workspace/linux/iproute2/misc'
make: *** [all] Error 2
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
---
misc/lnstat_util.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/misc/lnstat_util.c b/misc/lnstat_util.c
index 9492baf..103c05d 100644
--- a/misc/lnstat_util.c
+++ b/misc/lnstat_util.c
@@ -49,7 +49,8 @@ static int scan_lines(struct lnstat_file *lf, int i)
num_lines++;
- fgets(buf, sizeof(buf)-1, lf->fp);
+ if (!fgets(buf, sizeof(buf)-1, lf->fp))
+ return num_lines;
gettimeofday(&lf->last_read, NULL);
for (j = 0; j < lf->num_fields; j++) {
@@ -94,7 +95,8 @@ int lnstat_update(struct lnstat_file *lnstat_files)
rewind(lf->fp);
if (!lf->compat) {
/* skip first line */
- fgets(buf, sizeof(buf)-1, lf->fp);
+ if (!fgets(buf, sizeof(buf)-1, lf->fp))
+ return 0;
}
scan_lines(lf, 1);
@@ -108,7 +110,8 @@ int lnstat_update(struct lnstat_file *lnstat_files)
}
rewind(lf->fp);
- fgets(buf, sizeof(buf)-1, lf->fp);
+ if (!fgets(buf, sizeof(buf)-1, lf->fp))
+ return 0;
scan_lines(lf, 0);
}
}
@@ -142,7 +145,8 @@ static int lnstat_scan_fields(struct lnstat_file *lf)
char buf[FGETS_BUF_SIZE];
rewind(lf->fp);
- fgets(buf, sizeof(buf)-1, lf->fp);
+ if (!fgets(buf, sizeof(buf)-1, lf->fp))
+ return -1;
return __lnstat_scan_fields(lf, buf);
}
--
1.8.1.2
^ permalink raw reply related [flat|nested] 6+ messages in thread