]> skyeroc.xyz Git - dgamelaunch/commitdiff
some more memory management stuff
authorJoshua Kwan <joshk@triplehelix.org>
Tue, 30 Dec 2003 22:41:47 +0000 (22:41 +0000)
committerJoshua Kwan <joshk@triplehelix.org>
Tue, 30 Dec 2003 22:41:47 +0000 (22:41 +0000)
git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@5 db0b04b0-f4d1-0310-9a6d-de3e77497b0e

dgamelaunch.c

index e7c96548c9ce568c69b024a8965a9aed59d48d8c..4594f1112bacbb1f5c15fb645ae32cf08c636f46 100644 (file)
@@ -97,7 +97,7 @@ char ttyrec_filename[100];
 /* makes a max number of users compiled in */
 int f_num = 0;
 struct dg_user** users = NULL;
-struct dg_user* me;
+struct dg_user* me = NULL;
 
 /* ************************************************************* */
 /* for ttyrec */
@@ -534,8 +534,12 @@ freefile ()
                        free (users[i]->username);
                        free (users[i]->email);
                        free (users[i]->env);
+                       free (users[i]);
                }
 
+       free(users); 
+       users = NULL;
+       me = NULL;
        f_num = 0;
 }
 
@@ -554,14 +558,6 @@ initncurses ()
 
 /* ************************************************************* */
 
-void
-initvars ()
-{
-       me = malloc(sizeof(struct dg_user));
-}
-
-/* ************************************************************* */
-
 void
 login ()
 {
@@ -633,6 +629,11 @@ newuser ()
 
        loggedin = 0;
 
+       if (me)
+         free(me);
+
+       me = malloc(sizeof(struct dg_user));
+       
        while (error)
                {
                        clear ();
@@ -1019,8 +1020,6 @@ main (void)
        setgid (newgid);
        setuid (newuid);
 
-       initvars ();
-
        /* simple login routine, uses ncurses */
        if (readfile (0))
                exit (110);