diff options
author | Alan Somers <asomers@FreeBSD.org> | 2014-08-20 17:04:49 +0000 |
---|---|---|
committer | Alan Somers <asomers@FreeBSD.org> | 2014-08-20 17:04:49 +0000 |
commit | 81ade99c2ce2ca400d757a9286062c62db55bdc9 (patch) | |
tree | 9f97702700e2eb62ec4ed2e50e8376fedcfb7695 /sbin | |
parent | 801abb3ebacb42c3687c945c06e233a513f27b44 (diff) | |
download | src-81ade99c2ce2ca400d757a9286062c62db55bdc9.tar.gz src-81ade99c2ce2ca400d757a9286062c62db55bdc9.zip |
Misc fixes suggested by Coverity.
sbin/devd/tests/client_test.c
* In the event that popen fails, don't dereference its return value.
* Fix array overwrite in the stream and seqpacket tests.
* Close sockets at the end of successful ATF tests.
Reported by: Coverity scan
CID: 1232019, 1232020, 1232029, 1232030
MFC after: 1 week
Sponsored by: Spectra Logic
Notes
Notes:
svn path=/head/; revision=270231
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/devd/tests/client_test.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sbin/devd/tests/client_test.c b/sbin/devd/tests/client_test.c index 5e3acd0bfab8..dda9a899005d 100644 --- a/sbin/devd/tests/client_test.c +++ b/sbin/devd/tests/client_test.c @@ -58,6 +58,7 @@ create_two_events(void) snprintf(destroy_cmd, nitems(destroy_cmd), "mdconfig -d -u %s", mdname); destroy_stdout = popen(destroy_cmd, "r"); + ATF_REQUIRE(destroy_stdout != NULL); /* We expect no output */ ATF_REQUIRE_EQ(0, pclose(destroy_stdout)); } @@ -105,7 +106,8 @@ ATF_TC_BODY(seqpacket, tc) ssize_t len; char event[1024]; - len = recv(s, event, sizeof(event), MSG_WAITALL); + /* Read 1 less than sizeof(event) to allow space for NULL */ + len = recv(s, event, sizeof(event) - 1, MSG_WAITALL); ATF_REQUIRE(len != -1); /* NULL terminate the result */ event[len] = '\0'; @@ -118,6 +120,8 @@ ATF_TC_BODY(seqpacket, tc) if (cmp == 0) got_destroy_event = true; } + + close(s); } /* @@ -160,7 +164,8 @@ ATF_TC_BODY(stream, tc) ssize_t newlen; char *create_pos, *destroy_pos; - newlen = read(s, &event[len], sizeof(event) - len); + /* Read 1 less than sizeof(event) to allow space for NULL */ + newlen = read(s, &event[len], sizeof(event) - len - 1); ATF_REQUIRE(newlen != -1); len += newlen; /* NULL terminate the result */ @@ -174,8 +179,9 @@ ATF_TC_BODY(stream, tc) destroy_pos = strstr(event, destroy_pat); if (destroy_pos != NULL) got_destroy_event = true; - } + + close(s); } /* |