summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2018-08-21 19:44:48 +0200
committerLukáš Nykrýn <lnykryn@redhat.com>2019-05-03 13:00:29 +0200
commitfe6895fb6a5f8c61f0c47aa95e1c86bb88b7cf4f (patch)
tree5211e5c2aad2b11aa8e279f5d45c2297fa3283b6
parent465534a9417b7d7cf74f686da674b3f74d77ac58 (diff)
downloadsystemd-fe6895fb6a5f8c61f0c47aa95e1c86bb88b7cf4f.tar.gz
test-socket-util: avoid "memleak" reported by valgrind
valgrind reports the allocation done in the short-lived child as a leak. Let's restructure the code to avoid this. (cherry picked from commit 181c4ba750770b54a54b5abbe8ae8ff4f6db59b5) Resolves: #1683319
-rw-r--r--src/test/test-socket-util.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/test/test-socket-util.c b/src/test/test-socket-util.c
index ac2ea52a5c..588485d881 100644
--- a/src/test/test-socket-util.c
+++ b/src/test/test-socket-util.c
@@ -431,7 +431,6 @@ static void test_getpeercred_getpeergroups(void) {
if (r == 0) {
static const gid_t gids[] = { 3, 4, 5, 6, 7 };
gid_t *test_gids;
- _cleanup_free_ gid_t *peer_groups = NULL;
size_t n_test_gids;
uid_t test_uid;
gid_t test_gid;
@@ -472,12 +471,16 @@ static void test_getpeercred_getpeergroups(void) {
assert_se(ucred.gid == test_gid);
assert_se(ucred.pid == getpid_cached());
- r = getpeergroups(pair[0], &peer_groups);
- assert_se(r >= 0 || IN_SET(r, -EOPNOTSUPP, -ENOPROTOOPT));
+ {
+ _cleanup_free_ gid_t *peer_groups = NULL;
- if (r >= 0) {
- assert_se((size_t) r == n_test_gids);
- assert_se(memcmp(peer_groups, test_gids, sizeof(gid_t) * n_test_gids) == 0);
+ r = getpeergroups(pair[0], &peer_groups);
+ assert_se(r >= 0 || IN_SET(r, -EOPNOTSUPP, -ENOPROTOOPT));
+
+ if (r >= 0) {
+ assert_se((size_t) r == n_test_gids);
+ assert_se(memcmp(peer_groups, test_gids, sizeof(gid_t) * n_test_gids) == 0);
+ }
}
safe_close_pair(pair);