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 On Tue, Dec 14, 2021 at 11:09 AM Andrew Snyder 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 wrote: > >> * Andrew Snyder [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? >> >>