Ignore:
Timestamp:
Aug 2, 2010, 6:40:21 PM (15 years ago)
Author:
Silvan Scherrer
Message:

Samba 3.5: vendor update to 3.5.4

Location:
vendor/current/source3/winbindd
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source3/winbindd/winbindd.c

    r427 r478  
    373373        uint8 ret;
    374374        pid_t child_pid;
    375         struct sigaction act;
    376         struct sigaction oldact;
    377375
    378376        DEBUG(10, ("winbindd_msg_validate_cache: got validate-cache "
     
    384382         * code can safely use fork/waitpid...
    385383         */
    386         CatchChild();
    387384        child_pid = sys_fork();
    388385
     
    402399        /* child */
    403400
     401        if (!winbindd_reinit_after_fork(NULL)) {
     402                _exit(0);
     403        }
     404
    404405        /* install default SIGCHLD handler: validation code uses fork/waitpid */
    405         ZERO_STRUCT(act);
    406         act.sa_handler = SIG_DFL;
    407 #ifdef SA_RESTART
    408         /* We *want* SIGALRM to interrupt a system call. */
    409         act.sa_flags = SA_RESTART;
    410 #endif
    411         sigemptyset(&act.sa_mask);
    412         sigaddset(&act.sa_mask,SIGCHLD);
    413         sigaction(SIGCHLD,&act,&oldact);
     406        CatchSignal(SIGCHLD, SIG_DFL);
    414407
    415408        ret = (uint8)winbindd_validate_cache_nobackup();
  • vendor/current/source3/winbindd/winbindd_cm.c

    r427 r478  
    179179        pid_t parent_pid = sys_getpid();
    180180        char *lfile = NULL;
    181 
    182         /* Stop zombies */
    183         CatchChild();
    184181
    185182        if (domain->dc_probe_pid != (pid_t)-1) {
     
    810807        peeraddr_len = sizeof(peeraddr);
    811808
    812         if ((getpeername((*cli)->fd, &peeraddr, &peeraddr_len) != 0) ||
    813             (peeraddr_len != sizeof(struct sockaddr_in)) ||
    814             (peeraddr_in->sin_family != PF_INET))
    815         {
    816                 DEBUG(0,("cm_prepare_connection: %s\n", strerror(errno)));
     809        if ((getpeername((*cli)->fd, &peeraddr, &peeraddr_len) != 0)) {
     810                DEBUG(0,("cm_prepare_connection: getpeername failed with: %s\n",
     811                        strerror(errno)));
     812                result = NT_STATUS_UNSUCCESSFUL;
     813                goto done;
     814        }
     815
     816        if ((peeraddr_len != sizeof(struct sockaddr_in))
     817#ifdef HAVE_IPV6
     818            && (peeraddr_len != sizeof(struct sockaddr_in6))
     819#endif
     820            ) {
     821                DEBUG(0,("cm_prepare_connection: got unexpected peeraddr len %d\n",
     822                        peeraddr_len));
     823                result = NT_STATUS_UNSUCCESSFUL;
     824                goto done;
     825        }
     826
     827        if ((peeraddr_in->sin_family != PF_INET)
     828#ifdef HAVE_IPV6
     829            && (peeraddr_in->sin_family != PF_INET6)
     830#endif
     831            ) {
     832                DEBUG(0,("cm_prepare_connection: got unexpected family %d\n",
     833                        peeraddr_in->sin_family));
    817834                result = NT_STATUS_UNSUCCESSFUL;
    818835                goto done;
     
    11341151                                                                        domain->name,
    11351152                                                                        sitename,
    1136                                                                         pss);
     1153                                                                        pss,
     1154                                                                        name);
    11371155
    11381156                                        SAFE_FREE(sitename);
     
    11421160                                                                        domain->name,
    11431161                                                                        NULL,
    1144                                                                         pss);
     1162                                                                        pss,
     1163                                                                        name);
    11451164                                }
    11461165                                winbindd_set_locator_kdc_envs(domain);
  • vendor/current/source3/winbindd/winbindd_dual.c

    r427 r478  
    12151215                                            logfilename))
    12161216                return false;
     1217
     1218        /* Stop zombies in children */
     1219        CatchChild();
    12171220
    12181221        /* Don't handle the same messages as our parent. */
     
    13391342        DEBUG(10, ("Child process %d\n", (int)sys_getpid()));
    13401343
    1341         /* Stop zombies in children */
    1342         CatchChild();
    1343 
    13441344        state.sock = fdpair[0];
    13451345        close(fdpair[1]);
  • vendor/current/source3/winbindd/winbindd_util.c

    r414 r478  
    423423                                                &cache_methods,
    424424                                                &dom_list[i].sid );
     425                        if (d != NULL) {
     426                                setup_domain_child(d, &d->child);
     427                        }
    425428                }
    426429
     
    492495                                                        &cache_methods,
    493496                                                        &dom_list[i].sid );
     497                                if (d != NULL) {
     498                                        setup_domain_child(d, &d->child);
     499                                }
    494500                        }
    495501
Note: See TracChangeset for help on using the changeset viewer.