expand: Fix scanright zero handling when fnmatch is disabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Johannes Altmanninger <aclopte@xxxxxxxxx> wrote:
> I noticed another regression in c5bf970 (expand: Add multi-byte
> support to pmatch, 2024-06-02).
> 
> This command now prints "abc-def" but used to print "ef".
> 
>        x=abc-def
>        y="${x##*d}"
>        echo "$y"

Fix this by setting s to the correct value in scanright based
on FNMATCH_IS_ENABLED.

Fixes: c5bf9702ea11 ("expand: Add multi-byte support to pmatch")
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>

diff --git a/src/expand.c b/src/expand.c
index 7a30648..0066e1a 100644
--- a/src/expand.c
+++ b/src/expand.c
@@ -650,7 +650,7 @@ static char *scanright(char *startp, char *endp, char *rmesc, char *rmescend,
 
 		if (zero) {
 			*s = '\0';
-			s = rmesc;
+			s = FNMATCH_IS_ENABLED ? rmesc : startp;
 		}
 		match = pmatch(str, s);
 		*(FNMATCH_IS_ENABLED ? loc2 : loc) = c;

Thanks,
-- 
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux