/* we need to know if this is a foreign realm to know if we can
use lp_ads_server() */
- if (realm && strcasecmp(lp_realm(), realm) != 0) {
+ if (realm && *realm && strcasecmp(lp_realm(), realm) != 0) {
ads->server.foreign = 1;
}
- if (workgroup && strcasecmp(lp_workgroup(), workgroup) != 0) {
+ if (workgroup && *workgroup && strcasecmp(lp_workgroup(), workgroup) != 0) {
ads->server.foreign = 1;
}
if (!ADS_ERR_OK(ret)) return ret;
- msg = ads_first_entry(ads, res);
+ if ( !(msg = ads_first_entry(ads, res) )) {
+ ret = ADS_ERROR(LDAP_NO_RESULTS_RETURNED);
+ goto ads_set_sd_error;
+ }
+
ads_pull_sid(ads, msg, attrs[1], &sid);
if (!(ctx = talloc_init("sec_io_desc"))) {
ret = ADS_ERROR(LDAP_NO_MEMORY);