From: Herbert Xu <herbert@gondor.apana.org.au>
To: наб <nabijaczleweli@nabijaczleweli.xyz>
Cc: dash@vger.kernel.org
Subject: Re: [PATCH] alias: aliascmd: refuse uninvokable aliases
Date: Sun, 18 Dec 2022 11:04:19 +0800 [thread overview]
Message-ID: <Y56DMzRWQB1CEH5J@gondor.apana.org.au> (raw)
In-Reply-To: <20221217190705.atfwacsgggtafzl2@tarta.nabijaczleweli.xyz>
наб <nabijaczleweli@nabijaczleweli.xyz> wrote:
> [-- text/plain, encoding quoted-printable, charset: us-ascii, 109 lines --]
>
> See standards quote within, but the fun bit is:
> alias "a'b=c" "ls&id=cd"; alias
> outputs
> ls&id='cd'
> a'b='c'
> neither of which is What You Want, and also you can't invoke them
> because you need to escape the quote/&/whatever, which disables
> alias processing. Forbid the minimum broken set.
>
> For reference's sake, here's a test driver:
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include <sys/wait.h>
> #include <unistd.h>
> int main(int _, char ** argv) {
> putenv("LC_ALL=C");
> char val[] = "alias 'aQb=echo a' && alias";
> unsigned char * vp = strchr(val, 'Q');
> for(unsigned i = 0; i <= 0xFF; ++i) {
> *vp = i;
> if(!vfork()) {
> execl(argv[1], "sh", "-c", val, (char *)NULL);
> _exit(-1);
> }
> int r;
> wait(&r);
> fprintf(stderr, "%02x: %d\n", i, WEXITSTATUS(r));
> }
> }
>
> zsh refuses nothing
> dash refuses 09 0a 20 22 24 26 27 28 29 3b 3c 3e 5c 60 7c
> bash refuses dash + 2f
> mksh refuses bash + 23 + 2a + 3f + 5e + <20 + >7c
> ksh refuses bash + 2a + 3f + 5b + 7b + 7d
>
> Fixes: https://bugs.debian.org/758542
The main objective of dash is to try to be minimal, so I'm not
going to take this patch.
Thanks,
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
next prev parent reply other threads:[~2022-12-18 3:04 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-17 19:07 [PATCH] alias: aliascmd: refuse uninvokable aliases наб
2022-12-18 3:04 ` Herbert Xu [this message]
2022-12-18 3:34 ` наб
2022-12-19 8:09 ` Herbert Xu
2023-01-05 9:06 ` Herbert Xu
2023-01-05 12:49 ` [PATCH RESEND] alias: printalias: quote the name, too наб
2023-01-08 12:07 ` Herbert Xu
2023-01-08 23:51 ` Harald van Dijk
2023-01-09 0:12 ` [PATCH] alias: fix name quoting in printalias наб
2023-01-09 0:15 ` [PATCH v2] " наб
2023-01-09 0:30 ` Harald van Dijk
2023-01-11 0:06 ` Harald van Dijk
2023-01-11 10:11 ` Herbert Xu
2023-01-09 4:37 ` Herbert Xu
2023-01-08 12:30 ` [PATCH] alias: aliascmd: refuse uninvokable aliases Harald van Dijk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y56DMzRWQB1CEH5J@gondor.apana.org.au \
--to=herbert@gondor.apana.org.au \
--cc=dash@vger.kernel.org \
--cc=nabijaczleweli@nabijaczleweli.xyz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox