Ignore:
Timestamp:
May 20, 2009, 6:46:53 PM (16 years ago)
Author:
Herwig Bauernfeind
Message:

Update 3.2 branch to 3.2.4

Location:
branches/samba-3.2.x/source/nsswitch
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.2.x/source/nsswitch/wb_common.c

    r133 r204  
    177177
    178178        if (lstat(dir, &st) == -1) {
     179                errno = ENOENT;
    179180                return -1;
    180181        }
     
    182183        if (!S_ISDIR(st.st_mode) ||
    183184            (st.st_uid != 0 && st.st_uid != geteuid())) {
     185                errno = ENOENT;
    184186                return -1;
    185187        }
     
    200202
    201203        if (lstat(path, &st) == -1) {
     204                errno = ENOENT;
    202205                SAFE_FREE(path);
    203206                return -1;
     
    209212        if (!S_ISSOCK(st.st_mode) ||
    210213            (st.st_uid != 0 && st.st_uid != geteuid())) {
     214                errno = ENOENT;
    211215                return -1;
    212216        }
     
    369373       
    370374        if (winbind_open_pipe_sock(recursing, need_priv) == -1) {
     375                errno = ENOENT;
    371376                return -1;
    372377        }
     
    565570        if (winbind_write_sock(request, sizeof(*request),
    566571                               request->wb_flags & WBFLAG_RECURSE,
    567                                need_priv) == -1) {
     572                               need_priv) == -1)
     573        {
     574                /* Set ENOENT for consistency.  Required by some apps */
     575                errno = ENOENT;
     576               
    568577                return NSS_STATUS_UNAVAIL;
    569578        }
     
    573582                                request->extra_len,
    574583                                request->wb_flags & WBFLAG_RECURSE,
    575                                 need_priv) == -1)) {
     584                                need_priv) == -1))
     585        {
     586                /* Set ENOENT for consistency.  Required by some apps */
     587                errno = ENOENT;
     588
    576589                return NSS_STATUS_UNAVAIL;
    577590        }
     
    597610        /* Wait for reply */
    598611        if (winbindd_read_reply(response) == -1) {
     612                /* Set ENOENT for consistency.  Required by some apps */
     613                errno = ENOENT;
     614
    599615                return NSS_STATUS_UNAVAIL;
    600616        }
  • branches/samba-3.2.x/source/nsswitch/winbind_nss_solaris.c

    r133 r204  
    360360        int len = 0;
    361361        struct in_addr *addrp;
     362#if defined(AF_INET6)
    362363        struct in6_addr *addrp6;
     364#endif
    363365        int i;
    364366
     
    392394                he->h_addr_list = (char **)ROUND_DOWN(addrp, sizeof (char*));
    393395                he->h_addr_list -= addrcount+1;
    394         } else {
     396        }
     397#if defined(AF_INET6)
     398        else {
    395399                he->h_length = sizeof(struct in6_addr);
    396400                addrp6 = (struct in6_addr *)ROUND_DOWN(buffer + buflen,
     
    400404                he->h_addr_list -= addrcount+1;
    401405        }
     406#endif
    402407
    403408        /* buffer too small?! */
     
    419424                    return NSS_STR_PARSE_ERANGE;
    420425                  }
    421                 } else {
     426                }
     427#if defined(AF_INET6)
     428                else {
    422429                  he->h_addr_list[i] = (char *)&addrp6[i];
    423430                  if (strchr(data, ':') != 0) {
     
    435442                  }
    436443                }
     444#endif
    437445                data = p+1;
    438446        }
     
    482490           IPv4 to IPv6.
    483491         */
     492#if defined(AF_INET6)
    484493#ifdef HAVE_NSS_XBYY_KEY_IPNODE
    485494        af = argp->key.ipnode.af_family;
     
    492501        af = AF_INET6;
    493502#endif
     503#endif
    494504
    495505        strncpy(request.data.winsreq, argp->key.name, sizeof(request.data.winsreq) - 1);
     
    540550        ZERO_STRUCT(request);
    541551
     552#if defined(AF_INET6)
    542553        /* winbindd currently does not resolve IPv6 */
    543554        if(argp->key.hostaddr.type == AF_INET6) {
     
    547558
    548559        p = inet_ntop(argp->key.hostaddr.type, argp->key.hostaddr.addr,
    549                         request.data.winsreq, INET6_ADDRSTRLEN);
     560                        request.data.winsreq, sizeof request.data.winsreq);
     561#else
     562        snprintf(request.data.winsreq, sizeof request.data.winsreq,
     563                "%u.%u.%u.%u",
     564                ((unsigned char *)argp->key.hostaddr.addr)[0],
     565                ((unsigned char *)argp->key.hostaddr.addr)[1],
     566                ((unsigned char *)argp->key.hostaddr.addr)[2],
     567                ((unsigned char *)argp->key.hostaddr.addr)[3]);
     568#endif
    550569
    551570        ret = winbindd_request_response(WINBINDD_WINS_BYIP, &request, &response);
Note: See TracChangeset for help on using the changeset viewer.