r = strdup(realm);
- if (!r || !*r) return r;
+ if (!r || !*r)
+ return r;
- for (p=r; *p; p++) {
- if (strchr(sep, *p)) numbits++;
- }
+ for (p=r; *p; p++)
+ if (strchr(sep, *p))
+ numbits++;
len = (numbits+1)*(strlen(field)+1) + strlen(r) + 1;
ret = malloc(len);
+ if (!ret)
+ return NULL;
+
strlcpy(ret,field, len);
p=strtok(r,sep);
strlcat(ret, p, len);
while ((p=strtok(NULL,sep))) {
char *s;
- if (reverse) {
+ if (reverse)
asprintf(&s, "%s%s,%s", field, p, ret);
- } else {
+ else
asprintf(&s, "%s,%s%s", ret, field, p);
- }
free(ret);
ret = s;
}
free(r);
-
return ret;
}
ads->server.workgroup = workgroup ? strdup(workgroup) : NULL;
ads->server.ldap_server = ldap_server? strdup(ldap_server) : NULL;
- /* 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) {
+ /* we need to know if this is a foreign realm */
+ 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;
}