X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Flookups%2Fdsearch.c;h=c27f5d6e65203f9d01d984012ab3566c067bb997;hb=13e70f5530fc3fd376e1397c76e073a339e738aa;hp=9f7dd8da0c0319050bfb8586a7eaf0e099d25207;hpb=bfe645c1570343d3adca657ab67998e122ca8792;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/lookups/dsearch.c b/src/src/lookups/dsearch.c index 9f7dd8da0..c27f5d6e6 100644 --- a/src/src/lookups/dsearch.c +++ b/src/src/lookups/dsearch.c @@ -65,13 +65,13 @@ return lf_check_file(-1, filename, S_IFDIR, modemask, owners, owngroups, scanning the directory, as it is hopefully faster to let the OS do the scanning for us. */ -int -static dsearch_find(void *handle, uschar *dirname, const uschar *keystring, int length, +static int +dsearch_find(void *handle, uschar *dirname, const uschar *keystring, int length, uschar **result, uschar **errmsg, uint *do_cache) { struct stat statbuf; int save_errno; -uschar filename[PATH_MAX]; +uschar * filename; handle = handle; /* Keep picky compilers happy */ length = length; @@ -84,12 +84,7 @@ if (Ustrchr(keystring, '/') != 0) return DEFER; } -if (!string_format(filename, sizeof(filename), "%s/%s", dirname, keystring)) - { - *errmsg = US"path name too long"; - return DEFER; - } - +filename = string_sprintf("%s/%s", dirname, keystring); if (Ulstat(filename, &statbuf) >= 0) { *result = string_copy(keystring);