Changeset 1584

Show
Ignore:
Timestamp:
06/20/08 17:31:02 (4 months ago)
Author:
alo
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • cherokee/trunk/ChangeLog

    r1583 r1584  
    112008-06-20  Alvaro Lopez Ortega  <alvaro@alobbs.com> 
     2 
     3        * cherokee/util.c (cherokee_getpwnam): Stabilizes the function on 
     4        Linux and MacOS X. 
    25 
    36        * cherokee/handler_cgi_base.c (xsendfile_add_headers): Fixes the 
  • cherokee/trunk/cherokee/connection.c

    r1557 r1584  
    12201220        /* Default: it is inside the UserDir in home 
    12211221         */ 
    1222         ret = cherokee_getpwnam (conn->userdir.buf, &pwd, tmp, 1024); 
     1222        ret = cherokee_getpwnam (conn->userdir.buf, &pwd, tmp, sizeof(tmp)); 
    12231223        if ((ret != ret_ok) || (pwd.pw_dir == NULL)) { 
    12241224                conn->error_code = http_not_found; 
  • cherokee/trunk/cherokee/util.c

    r1571 r1584  
    10581058#elif HAVE_GETPWNAM_R_5 
    10591059        int            re; 
    1060         struct passwd *tmp; 
    1061  
     1060        struct passwd *tmp = NULL; 
     1061 
     1062        /* MacOS X: 
     1063         * int getpwnam_r (const char     *login,  
     1064         *                 struct passwd  *pwd,  
     1065         *                 char           *buffer,  
     1066         *                 size_t          bufsize, 
     1067         *                 struct passwd **result); 
     1068         * 
     1069         * Linux:  
     1070         * int getpwnam_r (const char     *name,  
     1071         *                 struct passwd  *pwbuf,  
     1072         *                 char           *buf, 
     1073         *                 size_t          buflen, 
     1074         *                 struct passwd **pwbufp); 
     1075         */ 
    10621076        re = getpwnam_r (name, pwbuf, buf, buflen, &tmp); 
    1063         if (re != 0) return ret_error; 
     1077        if ((re != 0) || (tmp == NULL))  
     1078                return ret_error; 
     1079 
     1080        printf ("pwbuf=%p tmp=%p\n", pwbuf, tmp); 
    10641081 
    10651082        return ret_ok;