libpwdgrp: reinstate Tito's optional atexit freeing
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
8d547aca75
commit
9dca6acaac
@ -117,6 +117,18 @@ static struct statics *ptr_to_statics;
|
|||||||
#define S (*ptr_to_statics)
|
#define S (*ptr_to_statics)
|
||||||
#define has_S (ptr_to_statics)
|
#define has_S (ptr_to_statics)
|
||||||
|
|
||||||
|
#if ENABLE_FEATURE_CLEAN_UP
|
||||||
|
static void free_static(void)
|
||||||
|
{
|
||||||
|
free(S.db[0].malloced);
|
||||||
|
free(S.db[1].malloced);
|
||||||
|
# if ENABLE_USE_BB_SHADOW
|
||||||
|
S.db[2].malloced);
|
||||||
|
# endif
|
||||||
|
free(ptr_to_statics);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct statics *get_S(void)
|
static struct statics *get_S(void)
|
||||||
{
|
{
|
||||||
if (!ptr_to_statics) {
|
if (!ptr_to_statics) {
|
||||||
@ -125,6 +137,9 @@ static struct statics *get_S(void)
|
|||||||
memcpy(&S.db[1], &const_gr_db, sizeof(const_gr_db));
|
memcpy(&S.db[1], &const_gr_db, sizeof(const_gr_db));
|
||||||
#if ENABLE_USE_BB_SHADOW
|
#if ENABLE_USE_BB_SHADOW
|
||||||
memcpy(&S.db[2], &const_sp_db, sizeof(const_sp_db));
|
memcpy(&S.db[2], &const_sp_db, sizeof(const_sp_db));
|
||||||
|
#endif
|
||||||
|
#if ENABLE_FEATURE_CLEAN_UP
|
||||||
|
atexit(free_static);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
return ptr_to_statics;
|
return ptr_to_statics;
|
||||||
|
Loading…
Reference in New Issue
Block a user