exim_dbmbuild: handle { '\\', '\0' } sequence.
[exim.git] / src / src / exim_dbmbuild.c
index 2dcc40f3e8ee05d72faa6ccc8e829b0c105e3beb..d7e611abf9947b71a6c34362ed34e11e927ac14c 100644 (file)
@@ -2,7 +2,7 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2017 */
+/* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 
@@ -94,6 +94,7 @@ string_interpret_escape(const uschar **pp)
 int ch;
 const uschar *p = *pp;
 ch = *(++p);
+if (ch == '\0') return *pp;
 if (isdigit(ch) && ch != '8' && ch != '9')
   {
   ch -= '0';
@@ -210,6 +211,8 @@ Ustrcat(temp_dbmname, ".dbmbuild_temp");
 Ustrcpy(dirname, temp_dbmname);
 if ((bptr = Ustrrchr(dirname, '/')))
   *bptr = '\0';
+else
+  Ustrcpy(dirname, ".");
 
 /* It is apparently necessary to open with O_RDWR for this to work
 with gdbm-1.7.3, though no reading is actually going to be done. */