Dsearch: require absolute dirname
[exim.git] / src / src / lookups / dsearch.c
index dba8422ccf1e07c65d919f38c62e5708ab57b4b7..07931ae4a42f2197f7399b6aa0f6e4ad487762e1 100644 (file)
@@ -52,8 +52,11 @@ dsearch_check(void * handle, const uschar * filename, int modemask,
   uid_t * owners, gid_t * owngroups, uschar ** errmsg)
 {
 handle = handle;
-return lf_check_file(-1, filename, S_IFDIR, modemask, owners, owngroups,
-  "dsearch", errmsg) == 0;
+if (*filename == '/')
+  return lf_check_file(-1, filename, S_IFDIR, modemask, owners, owngroups,
+    "dsearch", errmsg) == 0;
+*errmsg = string_sprintf("dirname '%s' for dsearch is not absolute", filename);
+return FALSE;
 }