Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 14 Dec 2021 11:50:58 -0500
From: Rich Felker <dalias@...c.org>
To: Andrew Snyder <arsnyder16@...il.com>
Cc: musl@...ts.openwall.com
Subject: Re: print does not support variable width plus padding

On Tue, Dec 14, 2021 at 11:10:23AM -0500, Andrew Snyder wrote:
> Sorry accidentally sent before attaching this
> 
> ~# docker run -it --rm alpine /bin/ash
> / # /lib/libc.musl-x86_64.so.1
> musl libc (x86_64)
> Version 1.2.2
> Dynamic Program Loader
> Usage: /lib/libc.musl-x86_64.so.1 [options] [--] pathname [args]
> / # printf %0*i 2 1
> ash: %0*i: invalid format

This is the busybox printf(1) command not the printf(3) C function.

Rich


> On Tue, Dec 14, 2021 at 11:09 AM Andrew Snyder <arsnyder16@...il.com> wrote:
> 
> > I get an error from printf i assume that underlying printf function is
> > returning error code.  In my native implementation i get incorrect results
> > and really depends on the parameters i didn't dig into too deep to see what
> > the pattern was
> >
> >
> > On Tue, Dec 14, 2021 at 11:03 AM Szabolcs Nagy <nsz@...t70.net> wrote:
> >
> >> * Andrew Snyder <arsnyder16@...il.com> [2021-12-14 10:22:42 -0500]:
> >> > I would like to be cc'd on the replies
> >> >
> >> > Looks like a bug in the musl printf functionality
> >> >
> >> > When using variable width format string and specifying a padding musl
> >> fails
> >> > to format properly.
> >> >
> >> > I am using musl indirectly through an emscripten compile of a native
> >> > library.
> >> >
> >> > Consider the following repro steps using alpine docker image. Correct
> >> > results exist when using ubuntu image
> >> >
> >> > # Correct expected  ' 1'
> >> > docker run -it --rm alpine printf %2i 1
> >> > # Correct expected  ' 1'
> >> > docker run -it --rm alpine printf %*i 2 1
> >> > # Correct expected  '01'
> >> > docker run -it --rm alpine printf %02i 1
> >> > # errors, Expected '01'
> >> > docker run -it --rm alpine printf %0*i 2 1
> >>
> >> i get the expected result on alpine
> >>
> >> $ printf %0*i 2 1
> >> 01
> >>
> >> what do you get?
> >>
> >>

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.