|
|
75e927 |
From d51daa8f56f5c55f2effdb308ef4a14016118753 Mon Sep 17 00:00:00 2001
|
|
|
75e927 |
From: "Alan T. DeKok" <aland@freeradius.org>
|
|
|
75e927 |
Date: Sun, 5 Oct 2014 17:22:26 -0400
|
|
|
75e927 |
Subject: [PATCH 1/1] Make grp tallo'c, too
|
|
|
75e927 |
|
|
|
75e927 |
---
|
|
|
75e927 |
src/modules/rlm_unix/rlm_unix.c | 14 +++++++++-----
|
|
|
75e927 |
1 file changed, 9 insertions(+), 5 deletions(-)
|
|
|
75e927 |
|
|
|
75e927 |
diff --git a/src/modules/rlm_unix/rlm_unix.c b/src/modules/rlm_unix/rlm_unix.c
|
|
|
75e927 |
index 0a01074..9e55c26 100644
|
|
|
75e927 |
--- a/src/modules/rlm_unix/rlm_unix.c
|
|
|
75e927 |
+++ b/src/modules/rlm_unix/rlm_unix.c
|
|
|
75e927 |
@@ -75,20 +75,20 @@ static const CONF_PARSER module_config[] = {
|
|
|
75e927 |
#else
|
|
|
75e927 |
static struct group *fr_getgrnam(TALLOC_CTX *ctx, char const *name)
|
|
|
75e927 |
{
|
|
|
75e927 |
- struct group *grp, my_group;
|
|
|
75e927 |
+ struct group *grp, *result;
|
|
|
75e927 |
char *group_buffer;
|
|
|
75e927 |
size_t group_size = 1024;
|
|
|
75e927 |
|
|
|
75e927 |
- grp = NULL;
|
|
|
75e927 |
- group_buffer = talloc_array(ctx, char, group_size);
|
|
|
75e927 |
+ grp = talloc(ctx, struct group);
|
|
|
75e927 |
+ group_buffer = talloc_array(grp, char, group_size);
|
|
|
75e927 |
while (group_buffer) {
|
|
|
75e927 |
int err;
|
|
|
75e927 |
|
|
|
75e927 |
- err = getgrnam_r(name, &my_group, group_buffer, group_size, &grp;;
|
|
|
75e927 |
+ err = getgrnam_r(name, grp, group_buffer, group_size, &result);
|
|
|
75e927 |
if (err == ERANGE) {
|
|
|
75e927 |
group_size *= 2;
|
|
|
75e927 |
talloc_free(group_buffer);
|
|
|
75e927 |
- group_buffer = talloc_array(ctx, char, group_size);
|
|
|
75e927 |
+ group_buffer = talloc_array(grp, char, group_size);
|
|
|
75e927 |
continue;
|
|
|
75e927 |
}
|
|
|
75e927 |
|
|
|
75e927 |
@@ -145,6 +145,10 @@ static int groupcmp(UNUSED void *instance, REQUEST *req, UNUSED VALUE_PAIR *requ
|
|
|
75e927 |
}
|
|
|
75e927 |
}
|
|
|
75e927 |
|
|
|
75e927 |
+#ifdef HAVE_GETGRNAM_R
|
|
|
75e927 |
+ talloc_free(grp);
|
|
|
75e927 |
+#endif
|
|
|
75e927 |
+
|
|
|
75e927 |
return retval;
|
|
|
75e927 |
}
|
|
|
75e927 |
|
|
|
75e927 |
--
|
|
|
75e927 |
2.1.1
|
|
|
75e927 |
|