Release the authmech before starting to free data in an authhandle.
[doldaconnect.git] / daemon / auth.c
index ce5dd12..d8c7a35 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Dolda Connect - Modular multiuser Direct Connect-style client
- *  Copyright (C) 2004 Fredrik Tolf (fredrik@dolda2000.com)
+ *  Copyright (C) 2004 Fredrik Tolf <fredrik@dolda2000.com>
  *  
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -80,10 +80,10 @@ void authputhandle(struct authhandle *auth)
 {
     if(--auth->refcount)
        return;
-    if(auth->text != NULL)
-       free(auth->text);
     if(auth->mechdata != NULL)
        auth->mech->release(auth);
+    if(auth->text != NULL)
+       free(auth->text);
     free(auth);
 }
 
@@ -155,12 +155,9 @@ void regmech(struct authmech *mech)
 
 static void preinit(int hup)
 {
-    extern struct authmech authmech_pam;
-    
     if(hup)
        return;
     regmech(&authless);
-    regmech(&authmech_pam);
 }
 
 static int init(int hup)
@@ -171,8 +168,6 @@ static int init(int hup)
 
 static struct configvar myvars[] =
 {
-    /** The name of the PAM service file to use. */
-    {CONF_VAR_STRING, "pamserv", {.str = L"doldacond"}},
     /** Specifies whether insecure authentication is to be allowed. If
      * you are not completely sure what you are doing, never turn this
      * on without also turning on net.onlylocal. */