X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Flookups%2Fnisplus.c;h=98f3df303e4c2e06c80c5add7883cc6f79d6bba5;hb=152481a026745132f8cd90fac166e6f4ecb6ea58;hp=61cc7018462b1a89e07ad5c2d9101f58f829c27d;hpb=db3f7b6972f3b003c0413b78afcfbe295ffe0b97;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/lookups/nisplus.c b/src/src/lookups/nisplus.c index 61cc70184..98f3df303 100644 --- a/src/src/lookups/nisplus.c +++ b/src/src/lookups/nisplus.c @@ -148,7 +148,8 @@ for (int i = 0; i < eo->en_cols.en_cols_len; i++) empty string for consistency. Remove trailing whitespace and zero bytes. */ - if (value == NULL) value = US""; else + if (!value) value = US""; + else while (len > 0 && (value[len-1] == 0 || isspace(value[len-1]))) len--; @@ -156,7 +157,7 @@ for (int i = 0; i < eo->en_cols.en_cols_len; i++) if (!field_name) { - yield = string_cat (yield, tc->tc_name); + yield = string_cat (yield, US tc->tc_name); yield = string_catn(yield, US"=", 1); /* Quote the value if it contains spaces or is empty */ @@ -194,7 +195,7 @@ if (field_name) *errmsg = string_sprintf("NIS+ field %s not found for %s", field_name, query); else - store_reset(yield->s + yield->ptr + 1); + gstring_release_unused(yield); /* Free result store before finishing. */ @@ -239,7 +240,7 @@ if (opt != NULL) return NULL; /* No options recognized */ while (*t != 0) if (*t++ == '\"') count++; if (count == 0) return s; -t = quoted = store_get(Ustrlen(s) + count + 1); +t = quoted = store_get(Ustrlen(s) + count + 1, is_tainted(s)); while (*s != 0) {