summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDenys Vlasenko2017-07-04 18:49:24 +0200
committerDenys Vlasenko2017-07-04 18:56:45 +0200
commita8cf9c5a3ffd1601872d1ab14c5be00fde29209c (patch)
tree20d9accf1cfeeea31a7252f6d12889160cf3aab0 /include
parent6a3bcf340aa9d7defc86f21d75fd9412c5b9f427 (diff)
downloadbusybox-a8cf9c5a3ffd1601872d1ab14c5be00fde29209c.zip
busybox-a8cf9c5a3ffd1601872d1ab14c5be00fde29209c.tar.gz
libbb: new function bb_getgroups() - allocating wrapper around getgroups()
function old new delta bb_getgroups - 111 +111 nexpr 843 757 -86 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 0/1 up/down: 111/-86) Total: 25 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'include')
-rw-r--r--include/libbb.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/libbb.h b/include/libbb.h
index 557978e..1c9de3a 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1033,6 +1033,15 @@ void die_if_bad_username(const char* name) FAST_FUNC;
#else
#define die_if_bad_username(name) ((void)(name))
#endif
+/*
+ * Returns (-1) terminated malloced result of getgroups().
+ * Reallocs group_array (useful for repeated calls).
+ * ngroups is an initial size of array. It is rounded up to 32 for realloc.
+ * ngroups is updated on return.
+ * ngroups can be NULL: bb_getgroups(NULL, NULL) is valid usage.
+ * Dies on errors (on Linux, only xrealloc can cause this, not internal getgroups call).
+ */
+gid_t *bb_getgroups(int *ngroups, gid_t *group_array) FAST_FUNC;
#if ENABLE_FEATURE_UTMP
void FAST_FUNC write_new_utmp(pid_t pid, int new_type, const char *tty_name, const char *username, const char *hostname);