Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_desklock.c e_ipc_codec.c 


Log Message:


maxime's leak fix patches

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_desklock.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- e_desklock.c        8 Jun 2006 19:11:54 -0000       1.15
+++ e_desklock.c        20 Jun 2006 11:35:14 -0000      1.16
@@ -583,19 +583,29 @@
        /* child */
        int pamerr;
        E_Desklock_Auth da;
-       
-       strncpy(da.user, _desklock_auth_get_current_user(), PATH_MAX);
+        char *current_user;
+
+       strncpy(da.user, current_user, PATH_MAX);
        strncpy(da.passwd, passwd, PATH_MAX);
        da.pam.handle = NULL;
        da.pam.conv.conv = NULL;
        da.pam.conv.appdata_ptr = NULL;
        
        pamerr = _desklock_pam_init(&da);
-       if (pamerr != PAM_SUCCESS) exit(pamerr);
+       if (pamerr != PAM_SUCCESS) 
+         {
+           free(current_user);
+           exit(pamerr);
+         }
        pamerr = pam_authenticate(da.pam.handle, 0);
        pam_end(da.pam.handle, pamerr);
        memset(da.passwd, 0, sizeof(da.passwd));
-       if (pamerr == PAM_SUCCESS) exit(0);
+       if (pamerr == PAM_SUCCESS)
+         {
+           free(current_user);
+           exit(0);
+         }
+       free(current_user);
        exit(-1);
      }
    return 1;
@@ -616,6 +626,8 @@
 _desklock_pam_init(E_Desklock_Auth *da)
 {
    int pamerr;
+   char *current_host;
+   char *current_user;
    
    if (!da) return -1;
    
@@ -626,15 +638,27 @@
    if ((pamerr = pam_start("system-auth", da->user, &(da->pam.conv),
                           &(da->pam.handle))) != PAM_SUCCESS)
      return pamerr;
-   
+
+   current_user = _desklock_auth_get_current_user();
+
    if ((pamerr = pam_set_item(da->pam.handle, PAM_USER,
-                             _desklock_auth_get_current_user())) != 
PAM_SUCCESS)
-     return pamerr;
+                             current_user)) != PAM_SUCCESS)
+     {
+       free(current_user);
+       return pamerr;
+     }
    
+   current_host = _desklock_auth_get_current_host();
    if ((pamerr = pam_set_item(da->pam.handle, PAM_RHOST,
-                             _desklock_auth_get_current_host())) != 
PAM_SUCCESS)
-     return pamerr;
+                             current_host)) != PAM_SUCCESS)
+     {
+       free(current_user);
+       free(current_host);
+       return pamerr;
+     }
    
+   free(current_user);
+   free(current_host);
    return 0;
 }
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_ipc_codec.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- e_ipc_codec.c       30 Apr 2006 11:54:04 -0000      1.16
+++ e_ipc_codec.c       20 Jun 2006 11:35:15 -0000      1.17
@@ -155,10 +155,14 @@
    E_CONFIG_DD_FREE(_e_ipc_2str_int_list_edd);
    E_CONFIG_DD_FREE(_e_ipc_4int_2str_edd);
    E_CONFIG_DD_FREE(_e_ipc_4int_2str_list_edd);
+   E_CONFIG_DD_FREE(_e_ipc_5int_2str_edd);
+   E_CONFIG_DD_FREE(_e_ipc_5int_2str_list_edd);
    E_CONFIG_DD_FREE(_e_ipc_3int_4str_edd);
    E_CONFIG_DD_FREE(_e_ipc_3int_4str_list_edd);
    E_CONFIG_DD_FREE(_e_ipc_3int_3str_edd);
    E_CONFIG_DD_FREE(_e_ipc_3int_3str_list_edd);
+   E_CONFIG_DD_FREE(_e_ipc_str_4int_edd);
+   E_CONFIG_DD_FREE(_e_ipc_str_4int_list_edd);
 }
 
 EAPI int




_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to