bug(ls): Invalid UTF8 quoting style not get a warning
Open
Beginner friendly
Nobody has claimed this yet.
U - ls
- Dominant language
- Rust
- Stars
- 24.1k
- Forks
- 2k
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 365
Description
Hi, uutils maintenrs
that can be reproduced via
relunsec@relunsec:~/software/coreutils/target/debug$ QUOTING_STYLE=$'\xFF' ./ls
1o6iHq6D6FKsl7187mIs65fv8LQirsHfB dd.d kill libuu_dir.d libuu_ls.d libuu_realpath.d libuu_test.d md5sum readlink.d tee
'NQzhvkt8ZzkfWcWjY6ZdytxObS4EhkxZL.a\' deps kill.d libuu_dir.rlib libuu_ls.rlib libuu_realpath.rlib libuu_test.rlib md5sum.d realpath tee.d
a df libstdbuf.d libuu_dircolors.d libuu_md5sum.d libuu_rm.d libuu_timeout.d mkdir realpath.d test
a.txt df.d libstdbuf.so libuu_dircolors.rlib libuu_md5sum.rlib libuu_rm.rlib libuu_timeout.rlib mkdir.d rm test.d
a@ dir libuu_arch.d libuu_dirname.d libuu_mkdir.d libuu_rmdir.d libuu_touch.d mkfifo rm.d timeout
arch dir.d libuu_arch.rlib libuu_dirname.rlib libuu_mkdir.rlib libuu_rmdir.rlib libuu_touch.rlib mkfifo.d rmdir timeout.d
arch.d dircolors libuu_b2sum.d libuu_du.d libuu_mkfifo.d libuu_runcon.d libuu_tr.d mknod rmdir.d touch
a~ dircolors.d libuu_b2sum.rlib libuu_du.rlib libuu_mkfifo.rlib libuu_runcon.rlib libuu_tr.rlib mknod.d runcon touch.d
b dirname libuu_base32.d libuu_echo.d libuu_mknod.d libuu_seq.d libuu_true.d mktemp runcon.d tr
b2sum dirname.d libuu_base32.rlib libuu_echo.rlib libuu_mknod.rlib libuu_seq.rlib libuu_true.rlib mktemp.d seq tr.d
b2sum.d du libuu_base64.d libuu_env.d libuu_mktemp.d libuu_sha1sum.d libuu_truncate.d more seq.d true
base32 du.d libuu_base64.rlib libuu_env.rlib libuu_mktemp.rlib libuu_sha1sum.rlib libuu_truncate.rlib more.d sgYGgVDm78 true.d
base32.d eBr libuu_basename.d libuu_expand.d libuu_more.d libuu_sha224sum.d libuu_tsort.d mv sha1sum truncate
base64 echo libuu_basename.rlib libuu_expand.rlib libuu_more.rlib libuu_sha224sum.rlib libuu_tsort.rlib mv.d sha1sum.d truncate.d
base64.d echo.d libuu_basenc.d libuu_expr.d libuu_mv.d libuu_sha256sum.d libuu_tty.d nice sha224sum tsort
basename env libuu_basenc.rlib libuu_expr.rlib libuu_mv.rlib libuu_sha256sum.rlib libuu_tty.rlib nice.d sha224sum.d tsort.d
basename.d env.d libuu_cat.d libuu_factor.d libuu_nice.d libuu_sha384sum.d libuu_uname.d nl sha256sum tty
basenc examples libuu_cat.rlib libuu_factor.rlib libuu_nice.rlib libuu_sha384sum.rlib libuu_uname.rlib nl.d sha256sum.d tty.d
basenc.d expand libuu_chcon.d libuu_false.d libuu_nl.d libuu_sha512sum.d libuu_unexpand.d nohup sha384sum uname
build expand.d libuu_chcon.rlib libuu_false.rlib libuu_nl.rlib libuu_sha512sum.rlib libuu_unexpand.rlib nohup.d sha384sum.d uname.d
c expr libuu_checksum_common.d libuu_fmt.d libuu_nohup.d libuu_shred.d libuu_uniq.d nohup.out sha512sum unexpand
cat expr.d libuu_checksum_common.rlib libuu_fmt.rlib libuu_nohup.rlib libuu_shred.rlib libuu_uniq.rlib nproc sha512sum.d unexpand.d
cat.d factor libuu_chgrp.d libuu_fold.d libuu_nproc.d libuu_shuf.d libuu_unlink.d nproc.d shred uniq
chcon factor.d libuu_chgrp.rlib libuu_fold.rlib libuu_nproc.rlib libuu_shuf.rlib libuu_unlink.rlib numfmt shred.d uniq.d
chcon.d false libuu_chmod.d libuu_groups.d libuu_numfmt.d libuu_sleep.d libuu_uptime.d numfmt.d shuf unlink
chgrp false.d libuu_chmod.rlib libuu_groups.rlib libuu_numfmt.rlib libuu_sleep.rlib libuu_uptime.rlib od shuf.d unlink.d
chgrp.d fmt libuu_chown.d libuu_head.d libuu_od.d libuu_sort.d libuu_users.d od.d sleep uptime
chmod fmt.d libuu_chown.rlib libuu_head.rlib libuu_od.rlib libuu_sort.rlib libuu_users.rlib paste sleep.d uptime.d
chmod.d fold libuu_chroot.d libuu_hostid.d libuu_paste.d libuu_split.d libuu_vdir.d paste.d sort users
chown fold.d libuu_chroot.rlib libuu_hostid.rlib libuu_paste.rlib libuu_split.rlib libuu_vdir.rlib pathchk sort.d users.d
chown.d g libuu_cksum.d libuu_hostname.d libuu_pathchk.d libuu_stat.d libuu_wc.d pathchk.d split vdir
chroot groups libuu_cksum.rlib libuu_hostname.rlib libuu_pathchk.rlib libuu_stat.rlib libuu_wc.rlib pinky split.d vdir.d
chroot.d groups.d libuu_comm.d libuu_id.d libuu_pinky.d libuu_stdbuf.d libuu_who.d pinky.d stat wc
cksum head libuu_comm.rlib libuu_id.rlib libuu_pinky.rlib libuu_stdbuf.rlib libuu_who.rlib pipe stat.d wc.d
cksum.d head.d libuu_cp.d libuu_install.d libuu_pr.d libuu_stty.d libuu_whoami.d pr stdbuf who
comm hostid libuu_cp.rlib libuu_install.rlib libuu_pr.rlib libuu_stty.rlib libuu_whoami.rlib pr.d stdbuf.d who.d
comm.d hostid.d libuu_csplit.d libuu_join.d libuu_printenv.d libuu_sum.d libuu_yes.d printenv stty whoami
cp hostname libuu_csplit.rlib libuu_join.rlib libuu_printenv.rlib libuu_sum.rlib libuu_yes.rlib printenv.d stty.d whoami.d
cp.d hostname.d libuu_cut.d libuu_kill.d libuu_printf.d libuu_sync.d link printf sum yes
csplit id libuu_cut.rlib libuu_kill.rlib libuu_printf.rlib libuu_sync.rlib link.d printf.d sum.d yes.d
csplit.d id.d libuu_date.d libuu_link.d libuu_ptx.d libuu_tac.d ln ptx sync z
cut incremental libuu_date.rlib libuu_link.rlib libuu_ptx.rlib libuu_tac.rlib ln.d ptx.d sync.d
cut.d install libuu_dd.d libuu_ln.d libuu_pwd.d libuu_tail.d logname pwd tac
date install.d libuu_dd.rlib libuu_ln.rlib libuu_pwd.rlib libuu_tail.rlib logname.d pwd.d tac.d
date.d join libuu_df.d libuu_logname.d libuu_readlink.d libuu_tee.d ls qWOvHBU83NVJ07dxAbF8o1k6j6T4Ak0l0. tail
dd join.d libuu_df.rlib libuu_logname.rlib libuu_readlink.rlib libuu_tee.rlib ls.d readlink tail.d
relunsec@relunsec:~/software/coreutils/target/debug$ QUOTING_STYLE=$'\xFF' gnuls
gnuls: ignoring invalid value of environment variable QUOTING_STYLE: ‘\377’
1o6iHq6D6FKsl7187mIs65fv8LQirsHfB deps kill.d libuu_dircolors.rlib libuu_ls.rlib libuu_realpath.rlib libuu_test.rlib md5sum.d readlink.d tee
a df libstdbuf.d libuu_dir.d libuu_md5sum.d libuu_rm.d libuu_timeout.d mkdir realpath tee.d
a@ df.d libstdbuf.so libuu_dirname.d libuu_md5sum.rlib libuu_rmdir.d libuu_timeout.rlib mkdir.d realpath.d test
a~ dir libuu_arch.d libuu_dirname.rlib libuu_mkdir.d libuu_rmdir.rlib libuu_touch.d mkfifo rm test.d
arch dircolors libuu_arch.rlib libuu_dir.rlib libuu_mkdir.rlib libuu_rm.rlib libuu_touch.rlib mkfifo.d rm.d timeout
arch.d dircolors.d libuu_b2sum.d libuu_du.d libuu_mkfifo.d libuu_runcon.d libuu_tr.d mknod rmdir timeout.d
a.txt dir.d libuu_b2sum.rlib libuu_du.rlib libuu_mkfifo.rlib libuu_runcon.rlib libuu_tr.rlib mknod.d rmdir.d touch
b dirname libuu_base32.d libuu_echo.d libuu_mknod.d libuu_seq.d libuu_true.d mktemp runcon touch.d
b2sum dirname.d libuu_base32.rlib libuu_echo.rlib libuu_mknod.rlib libuu_seq.rlib libuu_true.rlib mktemp.d runcon.d tr
b2sum.d du libuu_base64.d libuu_env.d libuu_mktemp.d libuu_sha1sum.d libuu_truncate.d more seq tr.d
base32 du.d libuu_base64.rlib libuu_env.rlib libuu_mktemp.rlib libuu_sha1sum.rlib libuu_truncate.rlib more.d seq.d true
base32.d eBr libuu_basename.d libuu_expand.d libuu_more.d libuu_sha224sum.d libuu_tsort.d mv sgYGgVDm78 true.d
base64 echo libuu_basename.rlib libuu_expand.rlib libuu_more.rlib libuu_sha224sum.rlib libuu_tsort.rlib mv.d sha1sum truncate
base64.d echo.d libuu_basenc.d libuu_expr.d libuu_mv.d libuu_sha256sum.d libuu_tty.d nice sha1sum.d truncate.d
basename env libuu_basenc.rlib libuu_expr.rlib libuu_mv.rlib libuu_sha256sum.rlib libuu_tty.rlib nice.d sha224sum tsort
basename.d env.d libuu_cat.d libuu_factor.d libuu_nice.d libuu_sha384sum.d libuu_uname.d nl sha224sum.d tsort.d
basenc examples libuu_cat.rlib libuu_factor.rlib libuu_nice.rlib libuu_sha384sum.rlib libuu_uname.rlib nl.d sha256sum tty
basenc.d expand libuu_chcon.d libuu_false.d libuu_nl.d libuu_sha512sum.d libuu_unexpand.d nohup sha256sum.d tty.d
build expand.d libuu_chcon.rlib libuu_false.rlib libuu_nl.rlib libuu_sha512sum.rlib libuu_unexpand.rlib nohup.d sha384sum uname
c expr libuu_checksum_common.d libuu_fmt.d libuu_nohup.d libuu_shred.d libuu_uniq.d nohup.out sha384sum.d uname.d
cat expr.d libuu_checksum_common.rlib libuu_fmt.rlib libuu_nohup.rlib libuu_shred.rlib libuu_uniq.rlib nproc sha512sum unexpand
cat.d factor libuu_chgrp.d libuu_fold.d libuu_nproc.d libuu_shuf.d libuu_unlink.d nproc.d sha512sum.d unexpand.d
chcon factor.d libuu_chgrp.rlib libuu_fold.rlib libuu_nproc.rlib libuu_shuf.rlib libuu_unlink.rlib 'NQzhvkt8ZzkfWcWjY6ZdytxObS4EhkxZL.a\' shred uniq
chcon.d false libuu_chmod.d libuu_groups.d libuu_numfmt.d libuu_sleep.d libuu_uptime.d numfmt shred.d uniq.d
chgrp false.d libuu_chmod.rlib libuu_groups.rlib libuu_numfmt.rlib libuu_sleep.rlib libuu_uptime.rlib numfmt.d shuf unlink
chgrp.d fmt libuu_chown.d libuu_head.d libuu_od.d libuu_sort.d libuu_users.d od shuf.d unlink.d
chmod fmt.d libuu_chown.rlib libuu_head.rlib libuu_od.rlib libuu_sort.rlib libuu_users.rlib od.d sleep uptime
chmod.d fold libuu_chroot.d libuu_hostid.d libuu_paste.d libuu_split.d libuu_vdir.d paste sleep.d uptime.d
chown fold.d libuu_chroot.rlib libuu_hostid.rlib libuu_paste.rlib libuu_split.rlib libuu_vdir.rlib paste.d sort users
chown.d g libuu_cksum.d libuu_hostname.d libuu_pathchk.d libuu_stat.d libuu_wc.d pathchk sort.d users.d
chroot groups libuu_cksum.rlib libuu_hostname.rlib libuu_pathchk.rlib libuu_stat.rlib libuu_wc.rlib pathchk.d split vdir
chroot.d groups.d libuu_comm.d libuu_id.d libuu_pinky.d libuu_stdbuf.d libuu_whoami.d pinky split.d vdir.d
cksum head libuu_comm.rlib libuu_id.rlib libuu_pinky.rlib libuu_stdbuf.rlib libuu_whoami.rlib pinky.d stat wc
cksum.d head.d libuu_cp.d libuu_install.d libuu_pr.d libuu_stty.d libuu_who.d pipe stat.d wc.d
comm hostid libuu_cp.rlib libuu_install.rlib libuu_printenv.d libuu_stty.rlib libuu_who.rlib pr stdbuf who
comm.d hostid.d libuu_csplit.d libuu_join.d libuu_printenv.rlib libuu_sum.d libuu_yes.d pr.d stdbuf.d whoami
cp hostname libuu_csplit.rlib libuu_join.rlib libuu_printf.d libuu_sum.rlib libuu_yes.rlib printenv stty whoami.d
cp.d hostname.d libuu_cut.d libuu_kill.d libuu_printf.rlib libuu_sync.d link printenv.d stty.d who.d
csplit id libuu_cut.rlib libuu_kill.rlib libuu_pr.rlib libuu_sync.rlib link.d printf sum yes
csplit.d id.d libuu_date.d libuu_link.d libuu_ptx.d libuu_tac.d ln printf.d sum.d yes.d
cut incremental libuu_date.rlib libuu_link.rlib libuu_ptx.rlib libuu_tac.rlib ln.d ptx sync z
cut.d install libuu_dd.d libuu_ln.d libuu_pwd.d libuu_tail.d logname ptx.d sync.d
date install.d libuu_dd.rlib libuu_ln.rlib libuu_pwd.rlib libuu_tail.rlib logname.d pwd tac
date.d join libuu_df.d libuu_logname.d libuu_readlink.d libuu_tee.d ls pwd.d tac.d
dd join.d libuu_df.rlib libuu_logname.rlib libuu_readlink.rlib libuu_tee.rlib ls.d qWOvHBU83NVJ07dxAbF8o1k6j6T4Ak0l0. tail
dd.d kill libuu_dircolors.d libuu_ls.d libuu_realpath.d libuu_test.d md5sum readlink tail.d
relunsec@relunsec:~/software/coreutils/target/debug$
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with the shown QUOTING_STYLE=$'\xFF' command and compare the output with gnuls. Trace how ls reads and validates QUOTING_STYLE, then locate the existing ls test entry point; done means invalid UTF-8 produces a warning while retaining the expected listing behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100