chiark
/
gitweb
/
~mdw
/
become
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8100c51
)
Patch memory leak. Rename `userdb_reinit' to `userdb_end' for more
author
mdw
<mdw>
Wed, 20 Aug 1997 16:24:58 +0000
(16:24 +0000)
committer
mdw
<mdw>
Wed, 20 Aug 1997 16:24:58 +0000
(16:24 +0000)
sensible restart.
src/userdb.c
patch
|
blob
|
blame
|
history
diff --git
a/src/userdb.c
b/src/userdb.c
index a03dc8973bb82962bde9eeffead4a953ec149542..db5e44b0daae394ead2fb047b0b5e710aa94ecab 100644
(file)
--- a/
src/userdb.c
+++ b/
src/userdb.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id: userdb.c,v 1.
3 1997/08/07 09:44:29
mdw Exp $
+ * $Id: userdb.c,v 1.
4 1997/08/20 16:24:58
mdw Exp $
*
* User database management
*
*
* User database management
*
@@
-29,6
+29,10
@@
/*----- Revision history --------------------------------------------------*
*
* $Log: userdb.c,v $
/*----- Revision history --------------------------------------------------*
*
* $Log: userdb.c,v $
+ * Revision 1.4 1997/08/20 16:24:58 mdw
+ * Patch memory leak. Rename `userdb_reinit' to `userdb_end' for more
+ * sensible restart.
+ *
* Revision 1.3 1997/08/07 09:44:29 mdw
* Read NIS-based passwords from the YP server directly, rather than using
* `popen(ypcat)', which is probably both slower and less secure.
* Revision 1.3 1997/08/07 09:44:29 mdw
* Read NIS-based passwords from the YP server directly, rather than using
* `popen(ypcat)', which is probably both slower and less secure.
@@
-619,7
+623,8
@@
static int userdb__foreachUser(int st, char *k, int ksz,
if (pw && !userdb__byName(&userdb__users, pw->pw_name)) {
IF_TRACING(TRACE_DEBUG, userdb__dumpUser(pw); )
userdb__addToMap(&userdb__users, pw->pw_name, pw->pw_uid, pw);
if (pw && !userdb__byName(&userdb__users, pw->pw_name)) {
IF_TRACING(TRACE_DEBUG, userdb__dumpUser(pw); )
userdb__addToMap(&userdb__users, pw->pw_name, pw->pw_uid, pw);
- }
+ } else
+ userdb_freeUser(pw);
free(cv);
return (0);
}
free(cv);
return (0);
}
@@
-654,7
+659,8
@@
static int userdb__foreachGroup(int st, char *k, int ksz,
if (gr && !userdb__byName(&userdb__groups, gr->gr_name)) {
IF_TRACING(TRACE_DEBUG, userdb__dumpGroup(gr); )
userdb__addToMap(&userdb__groups, gr->gr_name, gr->gr_gid, gr);
if (gr && !userdb__byName(&userdb__groups, gr->gr_name)) {
IF_TRACING(TRACE_DEBUG, userdb__dumpGroup(gr); )
userdb__addToMap(&userdb__groups, gr->gr_name, gr->gr_gid, gr);
- }
+ } else
+ userdb_freeGroup(gr);
free(cv);
return (0);
}
free(cv);
return (0);
}
@@
-764,20
+770,19
@@
void userdb_init(void)
userdb__createMap(&userdb__groups);
}
userdb__createMap(&userdb__groups);
}
-/* --- @userdb_
reinit
@ --- *
+/* --- @userdb_
end
@ --- *
*
* Arguments: ---
*
* Returns: ---
*
*
* Arguments: ---
*
* Returns: ---
*
- * Use:
Reinitialises
the user database.
+ * Use:
Closes down
the user database.
*/
*/
-void userdb_
reinit
(void)
+void userdb_
end
(void)
{
userdb__clearMap(&userdb__users, userdb_freeUser);
userdb__clearMap(&userdb__groups, userdb_freeGroup);
{
userdb__clearMap(&userdb__users, userdb_freeUser);
userdb__clearMap(&userdb__groups, userdb_freeGroup);
- userdb_init();
}
/*----- Test rig ----------------------------------------------------------*/
}
/*----- Test rig ----------------------------------------------------------*/
@@
-804,13
+809,22
@@
void dumpit(const char *msg)
int main(void)
{
ego("userdb-test");
int main(void)
{
ego("userdb-test");
- traceon(stderr, TRACE_ALL);
+/* traceon(stdout, TRACE_ALL); */
userdb_init();
userdb_init();
- dumpit("cleared");
- userdb_yp();
- dumpit("yp");
userdb_local();
userdb_local();
- dumpit("local");
+ userdb_yp();
+ printf("loaded (%lu)\n", track_memused());
+ getchar();
+ for (;;) {
+ userdb_end();
+ printf("cleared (%lu)\n", track_memused());
+/* track_memlist(); */
+ userdb_init();
+ userdb_local();
+ userdb_yp();
+ printf("reloaded (%lu)\n", track_memused());
+ getchar();
+ }
return (0);
}
return (0);
}