s3: Fix a winbind crash
authorVolker Lendecke <vl@samba.org>
Tue, 22 Jun 2010 13:59:44 +0000 (15:59 +0200)
committerVolker Lendecke <vl@samba.org>
Fri, 25 Jun 2010 10:34:43 +0000 (12:34 +0200)
nss_get_info_cached might have invalidated "ads" deep inside.

source3/winbindd/winbindd_ads.c

index 227c967c931c84112238318983b2d7ac17c0c0a9..96dabaa81a26dc60b560533e721ba9ff77122cf0 100644 (file)
@@ -547,9 +547,14 @@ static NTSTATUS query_user(struct winbindd_domain *domain,
 
        info->acct_name = ads_pull_username(ads, mem_ctx, msg);
 
-       nss_get_info_cached( domain, sid, mem_ctx, ads, msg, 
+       status = nss_get_info_cached( domain, sid, mem_ctx, ads, msg,
                      &info->homedir, &info->shell, &info->full_name, 
                      &info->primary_gid );     
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(1, ("nss_get_info_cached failed: %s\n",
+                         nt_errstr(status)));
+               goto done;
+       }
 
        if (info->full_name == NULL) {
                info->full_name = ads_pull_string(ads, mem_ctx, msg, "name");