diff options
author | toni <toni@hacktop.lan> | 2016-10-20 17:10:12 +0200 |
---|---|---|
committer | toni <toni@hacktop.lan> | 2016-10-20 17:10:12 +0200 |
commit | 311a7bd0a5ff05af235444670250b25b85e7ede9 (patch) | |
tree | aab41f532f4a7e23459b02003b920e9faa2e977c | |
parent | 8fbadac6c72c461a639443ebade00372b8402402 (diff) |
empty domain suffix marker
-rwxr-xr-x | build/install-sh | 21 | ||||
-rw-r--r-- | src/utils.c | 2 |
2 files changed, 16 insertions, 7 deletions
diff --git a/build/install-sh b/build/install-sh index 377bb86..756420d 100755 --- a/build/install-sh +++ b/build/install-sh @@ -345,34 +345,41 @@ do # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) + # $RANDOM is not portable (e.g. dash); use it when possible to + # lower collision chance tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + # As "mkdir -p" follows symlinks and we work in /tmp possibly; so + # create the $tmpdir first (and fail if unsuccessful) to make sure + # that nobody tries to guess the $tmpdir name. if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi - rmdir "$tmpdir/d" "$tmpdir" + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; diff --git a/src/utils.c b/src/utils.c index b7e421d..ada8528 100644 --- a/src/utils.c +++ b/src/utils.c @@ -82,6 +82,8 @@ utGetDomainInfo(char **szDefDomain, char **szDefServer) return 1; *szDefDomain = calloc(257, sizeof(char)); memcpy(*szDefDomain, _res.defdname, 256); + if (strnlen(*szDefDomain, 256) == 0) + *szDefDomain[0] = '-'; *szDefServer = calloc(IFNAMSIZ, sizeof(char)); memcpy(*szDefServer, inet_ntoa(_res.nsaddr_list[0].sin_addr), IFNAMSIZ-1); res_close(); |