From 807b9b95f2c17d624bf0cc6a1f61736327f25b83 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Fri, 7 Dec 2007 11:33:18 +0200 Subject: [PATCH] Don't do tilde expansion if HOME not set - If you dont have a home, glob() will go out of its way to give you one, even a wrong one. This isn't good when daemons etc have purposefully unset HOME... (transplanted from df4542826894e1cd17c898f1f8f736e0b4765488) --- rpmio/macro.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rpmio/macro.c b/rpmio/macro.c index 13b9caf..b42669f 100644 --- a/rpmio/macro.c +++ b/rpmio/macro.c @@ -1699,6 +1699,8 @@ int rpmGlob(const char * patterns, int * argcPtr, const char *** argvPtr) int argc = 0; const char ** argv = NULL; char * globRoot = NULL; + const char *home = getenv("HOME"); + int gflags = 0; #ifdef ENABLE_NLS const char * old_collate = NULL; const char * old_ctype = NULL; @@ -1708,6 +1710,9 @@ int rpmGlob(const char * patterns, int * argcPtr, const char *** argvPtr) int i, j; int rc; + if (home != NULL && strlen(home) > 0) + gflags |= GLOB_TILDE; + rc = XpoptParseArgvString(patterns, &ac, &av); if (rc) return rc; @@ -1742,7 +1747,7 @@ fprintf(stderr, "*** rpmGlob argv[%d] \"%s\"\n", argc, argv[argc]); gl.gl_pathc = 0; gl.gl_pathv = NULL; - rc = Glob(av[j], GLOB_TILDE, Glob_error, &gl); + rc = Glob(av[j], gflags, Glob_error, &gl); if (rc) goto exit; -- 2.7.4