From d79bb40f240c6a91f7b1617380db5f8cf8cce2a3 Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Tue, 10 Jul 2012 09:43:39 -0400 Subject: Bash-4.2 patch 30 --- lib/glob/glob.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'lib/glob/glob.c') diff --git a/lib/glob/glob.c b/lib/glob/glob.c index c77618f..ad9b9d9 100644 --- a/lib/glob/glob.c +++ b/lib/glob/glob.c @@ -200,8 +200,11 @@ mbskipname (pat, dname, flags) wchar_t *pat_wc, *dn_wc; size_t pat_n, dn_n; + pat_wc = dn_wc = (wchar_t *)NULL; + pat_n = xdupmbstowcs (&pat_wc, NULL, pat); - dn_n = xdupmbstowcs (&dn_wc, NULL, dname); + if (pat_n != (size_t)-1) + dn_n = xdupmbstowcs (&dn_wc, NULL, dname); ret = 0; if (pat_n != (size_t)-1 && dn_n !=(size_t)-1) @@ -221,6 +224,8 @@ mbskipname (pat, dname, flags) (pat_wc[0] != L'\\' || pat_wc[1] != L'.')) ret = 1; } + else + ret = skipname (pat, dname, flags); FREE (pat_wc); FREE (dn_wc); @@ -266,8 +271,11 @@ wdequote_pathname (pathname) /* Convert the strings into wide characters. */ n = xdupmbstowcs (&wpathname, NULL, pathname); if (n == (size_t) -1) - /* Something wrong. */ - return; + { + /* Something wrong. Fall back to single-byte */ + udequote_pathname (pathname); + return; + } orig_wpathname = wpathname; for (i = j = 0; wpathname && wpathname[i]; ) -- cgit v1.2.3