Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F160269042
D15782.id43716.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
9 KB
Referenced Files
None
Subscribers
None
D15782.id43716.diff
View Options
Index: head/tests/sys/audit/file-attribute-access.c
===================================================================
--- head/tests/sys/audit/file-attribute-access.c
+++ head/tests/sys/audit/file-attribute-access.c
@@ -36,6 +36,7 @@
static struct pollfd fds[1];
static mode_t mode = 0777;
+static int filedesc;
static char extregex[80];
static struct stat statbuff;
static const char *auclass = "fa";
@@ -55,10 +56,11 @@
ATF_TC_BODY(stat_success, tc)
{
/* File needs to exist to call stat(2) */
- ATF_REQUIRE(open(path, O_CREAT, mode) != -1);
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, mode)) != -1);
FILE *pipefd = setup(fds, auclass);
ATF_REQUIRE_EQ(0, stat(path, &statbuff));
check_audit(fds, successreg, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(stat_success, tc)
@@ -140,7 +142,6 @@
ATF_TC_BODY(fstat_success, tc)
{
- int filedesc;
/* File needs to exist to call fstat(2) */
ATF_REQUIRE((filedesc = open(path, O_CREAT | O_RDWR, mode)) != -1);
FILE *pipefd = setup(fds, auclass);
@@ -149,6 +150,7 @@
snprintf(extregex, sizeof(extregex),
"fstat.*%jd.*return,success", (intmax_t)statbuff.st_ino);
check_audit(fds, extregex, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(fstat_success, tc)
Index: head/tests/sys/audit/file-close.c
===================================================================
--- head/tests/sys/audit/file-close.c
+++ head/tests/sys/audit/file-close.c
@@ -40,6 +40,7 @@
static pid_t pid;
static struct pollfd fds[1];
static mode_t mode = 0777;
+static int filedesc;
static char extregex[80];
static struct stat statbuff;
static const char *auclass = "cl";
@@ -103,7 +104,6 @@
ATF_TC_BODY(close_success, tc)
{
- int filedesc;
/* File needs to exist to call close(2) */
ATF_REQUIRE((filedesc = open(path, O_CREAT | O_RDWR, mode)) != -1);
/* Call stat(2) to store the Inode number of 'path' */
@@ -176,7 +176,6 @@
ATF_TC_BODY(revoke_success, tc)
{
- int filedesc;
char *ptyname;
pid = getpid();
snprintf(extregex, sizeof(extregex), "revoke.*%d.*return,success", pid);
@@ -188,9 +187,7 @@
FILE *pipefd = setup(fds, auclass);
ATF_REQUIRE_EQ(0, revoke(ptyname));
check_audit(fds, extregex, pipefd);
-
- /* Close the file descriptor to pseudo terminal */
- ATF_REQUIRE_EQ(0, close(filedesc));
+ close(filedesc);
}
ATF_TC_CLEANUP(revoke_success, tc)
Index: head/tests/sys/audit/file-create.c
===================================================================
--- head/tests/sys/audit/file-create.c
+++ head/tests/sys/audit/file-create.c
@@ -37,6 +37,7 @@
static struct pollfd fds[1];
static mode_t mode = 0777;
+static int filedesc;
static dev_t dev = 0;
static const char *auclass = "fc";
static const char *path = "fileforaudit";
@@ -305,10 +306,11 @@
ATF_TC_BODY(rename_success, tc)
{
- ATF_REQUIRE(open(path, O_CREAT, mode) != -1);
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, mode)) != -1);
FILE *pipefd = setup(fds, auclass);
ATF_REQUIRE_EQ(0, rename(path, "renamed"));
check_audit(fds, successreg, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(rename_success, tc)
@@ -347,10 +349,11 @@
ATF_TC_BODY(renameat_success, tc)
{
- ATF_REQUIRE(open(path, O_CREAT, mode) != -1);
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, mode)) != -1);
FILE *pipefd = setup(fds, auclass);
ATF_REQUIRE_EQ(0, renameat(AT_FDCWD, path, AT_FDCWD, "renamed"));
check_audit(fds, successreg, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(renameat_success, tc)
@@ -389,10 +392,11 @@
ATF_TC_BODY(link_success, tc)
{
- ATF_REQUIRE(open(path, O_CREAT, mode) != -1);
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, mode)) != -1);
FILE *pipefd = setup(fds, auclass);
ATF_REQUIRE_EQ(0, link(path, "hardlink"));
check_audit(fds, successreg, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(link_success, tc)
@@ -431,10 +435,11 @@
ATF_TC_BODY(linkat_success, tc)
{
- ATF_REQUIRE(open(path, O_CREAT, mode) != -1);
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, mode)) != -1);
FILE *pipefd = setup(fds, auclass);
ATF_REQUIRE_EQ(0, linkat(AT_FDCWD, path, AT_FDCWD, "hardlink", 0));
check_audit(fds, successreg, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(linkat_success, tc)
Index: head/tests/sys/audit/file-delete.c
===================================================================
--- head/tests/sys/audit/file-delete.c
+++ head/tests/sys/audit/file-delete.c
@@ -35,6 +35,7 @@
static struct pollfd fds[1];
static mode_t mode = 0777;
+static int filedesc;
static const char *path = "fileforaudit";
static const char *errpath = "dirdoesnotexist/fileforaudit";
static const char *successreg = "fileforaudit.*return,success";
@@ -92,10 +93,11 @@
ATF_TC_BODY(rename_success, tc)
{
- ATF_REQUIRE(open(path, O_CREAT, mode) != -1);
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, mode)) != -1);
FILE *pipefd = setup(fds, "fd");
ATF_REQUIRE_EQ(0, rename(path, "renamed"));
check_audit(fds, successreg, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(rename_success, tc)
@@ -134,10 +136,11 @@
ATF_TC_BODY(renameat_success, tc)
{
- ATF_REQUIRE(open(path, O_CREAT, mode) != -1);
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, mode)) != -1);
FILE *pipefd = setup(fds, "fd");
ATF_REQUIRE_EQ(0, renameat(AT_FDCWD, path, AT_FDCWD, "renamed"));
check_audit(fds, successreg, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(renameat_success, tc)
@@ -176,10 +179,11 @@
ATF_TC_BODY(unlink_success, tc)
{
- ATF_REQUIRE(open(path, O_CREAT, mode) != -1);
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, mode)) != -1);
FILE *pipefd = setup(fds, "fd");
ATF_REQUIRE_EQ(0, unlink(path));
check_audit(fds, successreg, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(unlink_success, tc)
Index: head/tests/sys/audit/file-write.c
===================================================================
--- head/tests/sys/audit/file-write.c
+++ head/tests/sys/audit/file-write.c
@@ -32,6 +32,7 @@
static struct pollfd fds[1];
static mode_t mode = 0777;
+static int filedesc;
static off_t offlen = 0;
static const char *path = "fileforaudit";
static const char *errpath = "dirdoesnotexist/fileforaudit";
@@ -49,10 +50,11 @@
ATF_TC_BODY(truncate_success, tc)
{
/* File needs to exist to call truncate(2) */
- ATF_REQUIRE(open(path, O_CREAT, mode) != -1);
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, mode)) != -1);
FILE *pipefd = setup(fds, "fw");
ATF_REQUIRE_EQ(0, truncate(path, offlen));
check_audit(fds, successreg, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(truncate_success, tc)
@@ -91,13 +93,13 @@
ATF_TC_BODY(ftruncate_success, tc)
{
- int filedesc;
const char *regex = "ftruncate.*return,success";
/* Valid file descriptor needs to exist to call ftruncate(2) */
ATF_REQUIRE((filedesc = open(path, O_CREAT | O_RDWR)) != -1);
FILE *pipefd = setup(fds, "fw");
ATF_REQUIRE_EQ(0, ftruncate(filedesc, offlen));
check_audit(fds, regex, pipefd);
+ close(filedesc);
}
ATF_TC_CLEANUP(ftruncate_success, tc)
Index: head/tests/sys/audit/open.c
===================================================================
--- head/tests/sys/audit/open.c
+++ head/tests/sys/audit/open.c
@@ -52,6 +52,7 @@
static struct pollfd fds[1];
static mode_t o_mode = 0777;
+static int filedesc;
static char extregex[80];
static const char *path = "fileforaudit";
static const char *errpath = "adirhasnoname/fileforaudit";
@@ -71,10 +72,11 @@
snprintf(extregex, sizeof(extregex), \
"open.*%s.*fileforaudit.*return,success", regex); \
/* File needs to exist for successful open(2) invocation */ \
- ATF_REQUIRE(open(path, O_CREAT, o_mode) != -1); \
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, o_mode)) != -1); \
FILE *pipefd = setup(fds, class); \
ATF_REQUIRE(syscall(SYS_open, path, flag) != -1); \
check_audit(fds, extregex, pipefd); \
+ close(filedesc); \
} \
ATF_TC_CLEANUP(open_ ## mode ## _success, tc) \
{ \
@@ -106,13 +108,16 @@
} \
ATF_TC_BODY(openat_ ## mode ## _success, tc) \
{ \
+ int filedesc2; \
snprintf(extregex, sizeof(extregex), \
"openat.*%s.*fileforaudit.*return,success", regex); \
/* File needs to exist for successful openat(2) invocation */ \
- ATF_REQUIRE(open(path, O_CREAT, o_mode) != -1); \
+ ATF_REQUIRE((filedesc = open(path, O_CREAT, o_mode)) != -1); \
FILE *pipefd = setup(fds, class); \
- ATF_REQUIRE(openat(AT_FDCWD, path, flag) != -1); \
+ ATF_REQUIRE((filedesc2 = openat(AT_FDCWD, path, flag)) != -1); \
check_audit(fds, extregex, pipefd); \
+ close(filedesc2); \
+ close(filedesc); \
} \
ATF_TC_CLEANUP(openat_ ## mode ## _success, tc) \
{ \
Index: head/tests/sys/audit/utils.c
===================================================================
--- head/tests/sys/audit/utils.c
+++ head/tests/sys/audit/utils.c
@@ -27,15 +27,16 @@
#include <sys/ioctl.h>
-#include <time.h>
+#include <bsm/libbsm.h>
+#include <security/audit/audit_ioctl.h>
+
+#include <atf-c.h>
#include <errno.h>
#include <fcntl.h>
-#include <atf-c.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
+#include <time.h>
#include <unistd.h>
-#include <bsm/libbsm.h>
-#include <security/audit/audit_ioctl.h>
#include "utils.h"
@@ -79,7 +80,7 @@
}
free(buff);
- fclose(memstream);
+ ATF_REQUIRE_EQ(0, fclose(memstream));
return (atf_utils_grep_string("%s", membuff, auditregex));
}
@@ -194,9 +195,8 @@
check_audit(struct pollfd fd[], const char *auditrgx, FILE *pipestream) {
check_auditpipe(fd, auditrgx, pipestream);
- /* Cleanup */
- fclose(pipestream);
- close(fd[0].fd);
+ /* Teardown: /dev/auditpipe's instance opened for this test-suite */
+ ATF_REQUIRE_EQ(0, fclose(pipestream));
}
FILE
@@ -207,9 +207,9 @@
nomask = get_audit_mask("no");
FILE *pipestream;
- fd[0].fd = open("/dev/auditpipe", O_RDONLY);
+ ATF_REQUIRE((fd[0].fd = open("/dev/auditpipe", O_RDONLY)) != -1);
+ ATF_REQUIRE((pipestream = fdopen(fd[0].fd, "r")) != NULL);
fd[0].events = POLLIN;
- pipestream = fdopen(fd[0].fd, "r");
/* Set local preselection audit_class as "no" for audit startup */
set_preselect_mode(fd[0].fd, &nomask);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Jun 23, 6:25 PM (5 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34256037
Default Alt Text
D15782.id43716.diff (9 KB)
Attached To
Mode
D15782: Fix the file-descriptor resource leakage as reported by Coverty
Attached
Detach File
Event Timeline
Log In to Comment