[Toybox] [PATCH] logger.c was failing to properly log local0-local6 facilities, due to a string parsing error. This patch enables proper local facility handling.
Rob Landley
rob at landley.net
Tue Sep 8 22:30:34 PDT 2020
On 9/8/20 2:16 PM, Chris Sarra via Toybox wrote:
> ---
> toys/posix/logger.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/toys/posix/logger.c b/toys/posix/logger.c
> index 3bcfb174..d1cc7291 100644
> --- a/toys/posix/logger.c
> +++ b/toys/posix/logger.c
> @@ -64,9 +64,10 @@ void logger_main(void)
> else {
> *s1++ = len = 0;
> facility = arrayfind(TT.p, facilities, ARRAY_LEN(facilities));
> - if (facility == -1 && strncasecmp(TT.p, "local", 5)) {
> - facility = s1[5]-'0';
> - if (facility>7 || s1[6]) facility = -1;
> + if (facility == -1 && strncasecmp(TT.p, "local", 5) == 0) {
> + s2 = TT.p;
> + facility = s2[5]-'0';
> + if (facility>7 || s2[6]) facility = -1;
Sigh, why did I promote this out of pending? arrayfind() initializes matchlen to
0 and then never sets it to anything ELSE, so it ONLY returns exact matches not
longest unambiguous match (which is the point of the function I think?)
Applied your patch, but I have some cleanup to do to this command...
Rob
More information about the Toybox
mailing list