From bugzilla at busybox.net Wed Apr 3 14:02:42 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Wed, 03 Apr 2024 14:02:42 +0000 Subject: [Bug 16018] New: busybox tar allows un-escaped filenames to be printed to stdout/stderr Message-ID: https://bugs.busybox.net/show_bug.cgi?id=16018 Bug ID: 16018 Summary: busybox tar allows un-escaped filenames to be printed to stdout/stderr Product: Busybox Version: 1.30.x Hardware: All OS: All Status: NEW Severity: major Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: ian.norton at entrust.com CC: busybox-cvs at busybox.net Target Milestone: --- It is possible to create an archive with filenames that are terminal escape sequences and use this to hide other files from the file list or verbose output. The example output below is from running inside ubuntu 22.04 using busybox 1.30.1 root at 1f91a2b8747c:/tmp/hack# ls -l total 0 -rw-r--r-- 1 root root 0 Apr 3 13:30 ''$'\033''[1A'$'\033''[1Ksome-innocent-filename.txt' -rw-r--r-- 1 root root 0 Apr 3 13:31 some-innocent-filename.txt root at 1f91a2b8747c:/tmp/hack# busybox tar -cf ../bad.tar /etc/passwd $(echo -e '\033[1A\033[1Ksome-innocent-filename.txt') some-innocent-filename.txt tar: removing leading '/' from member names busybox will not report the etc/passwd item root at 1f91a2b8747c:/tmp/hack# busybox tar -tf ../bad.tar some-innocent-filename.txt some-innocent-filename.txt GNU tar will correctly report the escaped version of each member root at 1f91a2b8747c:/tmp/hack# tar -tf ../bad.tar etc/passwd \033[1A\033[1Ksome-innocent-filename.txt some-innocent-filename.txt If a root user were to use busybox to untar files from / you could see how this could be abused to unwittingly overwrite root files even if the listed the tar content first. -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Wed Apr 3 16:02:02 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Wed, 03 Apr 2024 16:02:02 +0000 Subject: [Bug 16018] busybox tar allows un-escaped filenames to be printed to stdout/stderr In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=16018 Ian Norton changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P5 |P1 Severity|major |critical -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Mon Apr 8 23:31:54 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Mon, 08 Apr 2024 23:31:54 +0000 Subject: [Bug 16021] New: 3/30 git worked 4/9 fails with TC errors. Message-ID: https://bugs.busybox.net/show_bug.cgi?id=16021 Bug ID: 16021 Summary: 3/30 git worked 4/9 fails with TC errors. Product: Busybox Version: 1.37.x Hardware: All OS: Linux Status: NEW Severity: major Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: mikes at guam.net CC: busybox-cvs at busybox.net Target Milestone: --- Generally download and build new git updates from time to time. Last one was on 3/30 and it worked fine. Now did same on 4/9, and download works fine, but build fails. networking/tc.c: In function ?cbq_print_opt?: networking/tc.c:236:27: error: ?TCA_CBQ_MAX? undeclared (first use in this function); did you mean ?TCA_CBS_MAX?? 236 | struct rtattr *tb[TCA_CBQ_MAX+1]; | ^~~~~~~~~~~ | TCA_CBS_MAX networking/tc.c:236:27: note: each undeclared identifier is reported only once for each function it appears in networking/tc.c:249:16: error: ?TCA_CBQ_RATE? undeclared (first use in this function); did you mean ?TCA_TBF_RATE64?? 249 | if (tb[TCA_CBQ_RATE]) { | ^~~~~~~~~~~~ | TCA_TBF_RATE64 networking/tc.c:255:16: error: ?TCA_CBQ_LSSOPT? undeclared (first use in this function) 255 | if (tb[TCA_CBQ_LSSOPT]) { | ^~~~~~~~~~~~~~ networking/tc.c:256:61: error: invalid application of ?sizeof? to incomplete type ?struct tc_cbq_lssopt? 256 | if (RTA_PAYLOAD(tb[TCA_CBQ_LSSOPT]) < sizeof(*lss)) | ^ networking/tc.c:261:16: error: ?TCA_CBQ_WRROPT? undeclared (first use in this function) 261 | if (tb[TCA_CBQ_WRROPT]) { | ^~~~~~~~~~~~~~ networking/tc.c:262:61: error: invalid application of ?sizeof? to incomplete type ?struct tc_cbq_wrropt? 262 | if (RTA_PAYLOAD(tb[TCA_CBQ_WRROPT]) < sizeof(*wrr)) | ^ networking/tc.c:267:16: error: ?TCA_CBQ_FOPT? undeclared (first use in this function) 267 | if (tb[TCA_CBQ_FOPT]) { | ^~~~~~~~~~~~ networking/tc.c:268:59: error: invalid application of ?sizeof? to incomplete type ?struct tc_cbq_fopt? 268 | if (RTA_PAYLOAD(tb[TCA_CBQ_FOPT]) < sizeof(*fopt)) | ^ networking/tc.c:273:16: error: ?TCA_CBQ_OVL_STRATEGY? undeclared (first use in this function) 273 | if (tb[TCA_CBQ_OVL_STRATEGY]) { | ^~~~~~~~~~~~~~~~~~~~ networking/tc.c:274:67: error: invalid application of ?sizeof? to incomplete type ?struct tc_cbq_ovl? 274 | if (RTA_PAYLOAD(tb[TCA_CBQ_OVL_STRATEGY]) < sizeof(*ovl)) | ^ networking/tc.c:277:50: error: invalid application of ?sizeof? to incomplete type ?struct tc_cbq_ovl? 277 | (unsigned) sizeof(*ovl)); | ^ networking/tc.c:293:23: error: invalid use of undefined type ?struct tc_cbq_lssopt? 293 | if (lss && lss->flags) { | ^~ networking/tc.c:296:24: error: invalid use of undefined type ?struct tc_cbq_lssopt? 296 | if (lss->flags&TCF_CBQ_LSS_BOUNDED) { | ^~ networking/tc.c:296:32: error: ?TCF_CBQ_LSS_BOUNDED? undeclared (first use in this function) 296 | if (lss->flags&TCF_CBQ_LSS_BOUNDED) { | ^~~~~~~~~~~~~~~~~~~ networking/tc.c:300:24: error: invalid use of undefined type ?struct tc_cbq_lssopt? 300 | if (lss->flags&TCF_CBQ_LSS_ISOLATED) { | ^~ networking/tc.c:300:32: error: ?TCF_CBQ_LSS_ISOLATED? undeclared (first use in this function) 300 | if (lss->flags&TCF_CBQ_LSS_ISOLATED) { | ^~~~~~~~~~~~~~~~~~~~ networking/tc.c:308:24: error: invalid use of undefined type ?struct tc_cbq_wrropt? 308 | if (wrr->priority != TC_CBQ_MAXPRIO) | ^~ networking/tc.c:308:38: error: ?TC_CBQ_MAXPRIO? undeclared (first use in this function) 308 | if (wrr->priority != TC_CBQ_MAXPRIO) | ^~~~~~~~~~~~~~ networking/tc.c:309:46: error: invalid use of undefined type ?struct tc_cbq_wrropt? 309 | printf("prio %u", wrr->priority); | ^~ networking/tc.c:313:43: error: invalid use of undefined type ?struct tc_cbq_wrropt? 313 | printf("/%u ", wrr->cpriority); | ^~ networking/tc.c:314:32: error: invalid use of undefined type ?struct tc_cbq_wrropt? 314 | if (wrr->weight != 1) { | ^~ networking/tc.c:315:65: error: invalid use of undefined type ?struct tc_cbq_wrropt? 315 | print_rate(buf, sizeof(buf), wrr->weight); | ^~ networking/tc.c:318:32: error: invalid use of undefined type ?struct tc_cbq_wrropt? 318 | if (wrr->allot) | ^~ networking/tc.c:319:57: error: invalid use of undefined type ?struct tc_cbq_wrropt? 319 | printf("allot %ub ", wrr->allot); | ^~ networking/tc.c:236:24: warning: unused variable ?tb? [-Wunused-variable] 236 | struct rtattr *tb[TCA_CBQ_MAX+1]; | ^~ make[1]: *** [scripts/Makefile.build:198: networking/tc.o] Error 1 make: *** [Makefile:744: networking] Error 2 If I manually disable the two TC options in .config, the build works fine. not sure why? -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Tue Apr 9 14:51:46 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Tue, 09 Apr 2024 14:51:46 +0000 Subject: [Bug 16024] New: ash: sleep as a builtin may abort the shell Message-ID: https://bugs.busybox.net/show_bug.cgi?id=16024 Bug ID: 16024 Summary: ash: sleep as a builtin may abort the shell Product: Busybox Version: unspecified Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: sinbad_4273 at yahoo.com CC: busybox-cvs at busybox.net Target Milestone: --- For ash builtin sleep, the following aborts the shell sleep --help // if help isn't on sleep 0.5 // if float duration isn't on sleep 1n // typo should have been 1m with fancy sleep on This is known to busybox developers as shown by this comment in sleep.c //FIXME: in ash, "sleep 123qwerty" as a builtin aborts the shell https://git.busybox.net/busybox/tree/coreutils/sleep.c#n91 If any sleep argument is deemed invalid, bb_error_msg_and_die() is called but in the case of a builtin the entire ash shell is what dies not sleep as intended. https://git.busybox.net/busybox/tree/libbb/xatonum_template.c#n74 This was noticed in the dd-wrt project as discussed here: https://forum.dd-wrt.com/phpBB2/viewtopic.php?t=336142 Workaround: Use /bin/sleep instead of builtin sleep so bb_error_msg_and_die() will terminate the sleep process not the terminate the ash process. -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Apr 11 18:01:53 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 11 Apr 2024 18:01:53 +0000 Subject: [Bug 16033] New: CVE-2023-39810: directory traversal in cpio Message-ID: https://bugs.busybox.net/show_bug.cgi?id=16033 Bug ID: 16033 Summary: CVE-2023-39810: directory traversal in cpio Product: Busybox Version: 1.36.x Hardware: All OS: Linux Status: NEW Severity: major Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: bake.earmuffs at gmail.com CC: busybox-cvs at busybox.net Target Milestone: --- Hi CVE reported some time ago: https://nvd.nist.gov/vuln/detail/CVE-2023-39810 https://www.pentagrid.ch/en/blog/busybox-cpio-directory-traversal-vulnerability/ Thanks! -- You are receiving this mail because: You are on the CC list for the bug. From vda.linux at googlemail.com Sat Apr 13 15:57:46 2024 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Sat, 13 Apr 2024 17:57:46 +0200 Subject: [git commit] docproc: avoid segfault during file closing Message-ID: <20240413155957.BFF9986004@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=681e4f5d922b9f0ea968238750d5c5d748eac809 branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master In the function find_export_symbols, since the fopen file does not exit when it fails, there is a dereference problem in fclose(fp), which will cause a segmentation fault. Signed-off-by: Yan Zhu Signed-off-by: Denys Vlasenko --- scripts/basic/docproc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/basic/docproc.c b/scripts/basic/docproc.c index 4464e1874..8828901a1 100644 --- a/scripts/basic/docproc.c +++ b/scripts/basic/docproc.c @@ -180,6 +180,7 @@ void find_export_symbols(char * filename) { fprintf(stderr, "docproc: "); perror(real_filename); + exit(1); } while (fgets(line, MAXLINESZ, fp)) { unsigned char *p; From vda.linux at googlemail.com Sat Apr 13 16:40:20 2024 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Sat, 13 Apr 2024 18:40:20 +0200 Subject: [git commit] lineedit: print prompt and editing operations to stderr Message-ID: <20240413164123.888AC8603C@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=fd47f056765aed515f4c71118813f07be1402bee branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master For shells, this is mandated by standards function old new delta input_backward 215 231 +16 read_line_input 3015 3028 +13 draw_custom 66 78 +12 put_cur_glyph_and_inc_cursor 149 159 +10 put_prompt_custom 47 56 +9 show_history 40 46 +6 input_tab 927 933 +6 input_delete 136 142 +6 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 8/0 up/down: 78/0) Total: 78 bytes Signed-off-by: Denys Vlasenko --- libbb/lineedit.c | 62 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/libbb/lineedit.c b/libbb/lineedit.c index bdae10914..543a3f11c 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c @@ -345,7 +345,7 @@ static unsigned save_string(char *dst, unsigned maxsize) return i; } } -/* I thought just fputwc(c, stdout) would work. But no... */ +/* I thought just fputwc(c, stderr) would work. But no... */ static void BB_PUTCHAR(wchar_t c) { if (unicode_status == UNICODE_ON) { @@ -354,11 +354,11 @@ static void BB_PUTCHAR(wchar_t c) ssize_t len = wcrtomb(buf, c, &mbst); if (len > 0) { buf[len] = '\0'; - fputs_stdout(buf); + fputs(buf, stderr); } } else { /* In this case, c is always one byte */ - putchar(c); + bb_putchar_stderr(c); } } # if ENABLE_UNICODE_COMBINING_WCHARS || ENABLE_UNICODE_WIDE_WCHARS @@ -404,7 +404,7 @@ static void save_string(char *dst, unsigned maxsize) safe_strncpy(dst, command_ps, maxsize); } # endif -# define BB_PUTCHAR(c) bb_putchar(c) +# define BB_PUTCHAR(c) bb_putchar_stderr(c) /* Should never be called: */ int adjust_width_and_validate_wc(unsigned *width_adj, int wc); #endif @@ -463,7 +463,7 @@ static void put_cur_glyph_and_inc_cursor(void) if (c == BB_NUL) c = ' '; BB_PUTCHAR(c); - bb_putchar('\b'); + bb_putchar_stderr('\b'); #endif cmdedit_y++; if (!ENABLE_UNICODE_WIDE_WCHARS || ofs_to_right == 0) { @@ -489,12 +489,12 @@ static void goto_new_line(void) put_till_end_and_adv_cursor(); /* "cursor == 0" is only if prompt is "" and user input is empty */ if (cursor == 0 || cmdedit_x != 0) - bb_putchar('\n'); + bb_putchar_stderr('\n'); } static void beep(void) { - bb_putchar('\007'); + bb_putchar_stderr('\007'); } /* Full or last/sole prompt line, reset edit cursor, calculate terminal cursor. @@ -502,7 +502,10 @@ static void beep(void) */ static void put_prompt_custom(bool is_full) { - fputs_stdout((is_full ? cmdedit_prompt : prompt_last_line)); + /* https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html + * says that shells must write $PSn to stderr, not stdout. + */ + fputs((is_full ? cmdedit_prompt : prompt_last_line), stderr); cursor = 0; cmdedit_y = cmdedit_prmt_len / cmdedit_termw; /* new quasireal y */ cmdedit_x = cmdedit_prmt_len % cmdedit_termw; @@ -539,15 +542,15 @@ static void input_backward(unsigned num) /* This is longer by 5 bytes on x86. * Also gets miscompiled for ARM users * (busybox.net/bugs/view.php?id=2274). - * printf(("\b\b\b\b" + 4) - num); + * fprintf(("\b\b\b\b" + 4) - num, stderr); * return; */ do { - bb_putchar('\b'); + bb_putchar_stderr('\b'); } while (--num); return; } - printf(ESC"[%uD", num); + fprintf(stderr, ESC"[%uD", num); return; } @@ -572,7 +575,7 @@ static void input_backward(unsigned num) */ unsigned sv_cursor; /* go to 1st column; go up to first line */ - printf("\r" ESC"[%uA", cmdedit_y); + fprintf(stderr, "\r" ESC"[%uA", cmdedit_y); cmdedit_y = 0; sv_cursor = cursor; put_prompt_last_line(); /* sets cursor to 0 */ @@ -587,12 +590,12 @@ static void input_backward(unsigned num) cmdedit_x = (cmdedit_termw * cmdedit_y - num) % cmdedit_termw; cmdedit_y -= lines_up; /* go to 1st column; go up */ - printf("\r" ESC"[%uA", lines_up); + fprintf(stderr, "\r" ESC"[%uA", lines_up); /* go to correct column. * xterm, konsole, Linux VT interpret 0 as 1 below! wow. * need to *make sure* we skip it if cmdedit_x == 0 */ if (cmdedit_x) - printf(ESC"[%uC", cmdedit_x); + fprintf(stderr, ESC"[%uC", cmdedit_x); } } @@ -600,11 +603,11 @@ static void input_backward(unsigned num) static void draw_custom(int y, int back_cursor, bool is_full) { if (y > 0) /* up y lines */ - printf(ESC"[%uA", y); - bb_putchar('\r'); + fprintf(stderr, ESC"[%uA", y); + bb_putchar_stderr('\r'); put_prompt_custom(is_full); put_till_end_and_adv_cursor(); - printf(SEQ_CLEAR_TILL_END_OF_SCREEN); + fputs(SEQ_CLEAR_TILL_END_OF_SCREEN, stderr); input_backward(back_cursor); } @@ -649,7 +652,7 @@ static void input_delete(int save) command_len--; put_till_end_and_adv_cursor(); /* Last char is still visible, erase it (and more) */ - printf(SEQ_CLEAR_TILL_END_OF_SCREEN); + fputs(SEQ_CLEAR_TILL_END_OF_SCREEN, stderr); input_backward(cursor - j); /* back to old pos cursor */ } @@ -984,8 +987,8 @@ static void remove_chunk(int16_t *int_buf, int beg, int end) if (dbg_bmp) { int i; for (i = 0; int_buf[i]; i++) - bb_putchar((unsigned char)int_buf[i]); - bb_putchar('\n'); + bb_putchar_stderr((unsigned char)int_buf[i]); + bb_putchar_stderr('\n'); } } /* Caller ensures that match_buf points to a malloced buffer @@ -1162,7 +1165,7 @@ static void showfiles(void) int nc; for (nc = 1; nc < ncols && n+nrows < nfiles; n += nrows, nc++) { - printf("%s%-*s", matches[n], + fprintf(stderr, "%s%-*s", matches[n], (int)(column_width - unicode_strwidth(matches[n])), "" ); } @@ -1460,7 +1463,7 @@ void FAST_FUNC show_history(const line_input_t *st) if (!st) return; for (i = 0; i < st->cnt_history; i++) - printf("%4d %s\n", i, st->history[i]); + fprintf(stderr, "%4d %s\n", i, st->history[i]); } # if ENABLE_FEATURE_EDITING_SAVEHISTORY @@ -1900,7 +1903,7 @@ static void ask_terminal(void) pfd.events = POLLIN; if (safe_poll(&pfd, 1, 0) == 0) { S.sent_ESC_br6n = 1; - fputs_stdout(ESC"[6n"); + fputs(ESC"[6n", stderr); fflush_all(); /* make terminal see it ASAP! */ } } @@ -2639,13 +2642,13 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman /* Control-k -- clear to end of line */ command_ps[cursor] = BB_NUL; command_len = cursor; - printf(SEQ_CLEAR_TILL_END_OF_SCREEN); + fputs(SEQ_CLEAR_TILL_END_OF_SCREEN, stderr); break; case CTRL('L'): vi_case(CTRL('L')|VI_CMDMODE_BIT:) /* Control-l -- clear screen */ /* cursor to top,left; clear to the end of screen */ - printf(ESC"[H" ESC"[J"); + fputs(ESC"[H" ESC"[J", stderr); draw_full(command_len - cursor); break; #if MAX_HISTORY > 0 @@ -2832,8 +2835,8 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman beep(); } else { command_ps[cursor] = ic; - bb_putchar(ic); - bb_putchar('\b'); + bb_putchar_stderr(ic); + bb_putchar_stderr('\b'); } break; case '\x1b': /* ESC */ @@ -3027,7 +3030,10 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman #undef read_line_input int FAST_FUNC read_line_input(const char* prompt, char* command, int maxsize) { - fputs_stdout(prompt); + /* https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html + * says that shells must write $PSn to stderr, not stdout. + */ + fputs(prompt, stderr); fflush_all(); if (!fgets(command, maxsize, stdin)) return -1; From bugzilla at busybox.net Wed Apr 17 15:57:16 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Wed, 17 Apr 2024 15:57:16 +0000 Subject: [Bug 16039] New: chown misinterprets "." as group separator Message-ID: https://bugs.busybox.net/show_bug.cgi?id=16039 Bug ID: 16039 Summary: chown misinterprets "." as group separator Product: Busybox Version: 1.36.x Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: foo at mafoo.org.uk CC: busybox-cvs at busybox.net Target Milestone: --- Created attachment 9736 --> https://bugs.busybox.net/attachment.cgi?id=9736&action=edit possible fix In uidgid_get.c there is a parse_chown_usergroup_or_die() function which continues to implement a very old BSD(?) notation of user.group as well as user:group -- the code assumes that the first "." is a separater. I don't know what else calls it but, for the chown applet, the implementation precludes support of users with "."s in (such as "test.test") when invoked with "chown test.test file": # chown test.test /tmp/test chown: unknown user/group test:test https://github.com/mirror/busybox/blame/master/libpwdgrp/uidgid_get.c#L96 There is no reference to this interpretation in the code comment of the usage string: Usage: chown [-RhLHPcvf]... USER[:[GRP]] FILE... Given that this notation appears to have been deprecated back in 2001, is now the time to remove this? Possible patch to fix attached -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Apr 18 21:11:40 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 18 Apr 2024 21:11:40 +0000 Subject: [Bug 16042] New: 1.36.1 fails to build after removal of CBQ headers Message-ID: https://bugs.busybox.net/show_bug.cgi?id=16042 Bug ID: 16042 Summary: 1.36.1 fails to build after removal of CBQ headers Product: Busybox Version: 1.36.x Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Networking Assignee: unassigned at busybox.net Reporter: dave.jones at canonical.com CC: busybox-cvs at busybox.net Target Milestone: --- busybox 1.36.1 is currently failing to build across all architectures in Ubuntu [1] due to the removal of the CBQ (class based queue) headers from the current kernel in [2]. I've worked around this temporarily by simply patching the defines back in, in a compatibility header (see debdiff in [3]) but I'd guess a more permanent solution is desired? [1]: https://launchpad.net/ubuntu/+source/busybox/1:1.36.1-6ubuntu2/+build/28036868 [2]: https://github.com/torvalds/linux/commit/33241dca486264193ed68167c8eeae1fb197f3df [3]: https://bugs.launchpad.net/ubuntu/+source/busybox/+bug/2062414 -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Sun Apr 21 13:57:44 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Sun, 21 Apr 2024 13:57:44 +0000 Subject: [Bug 16045] New: find -size handling not POSIX compliant Message-ID: https://bugs.busybox.net/show_bug.cgi?id=16045 Bug ID: 16045 Summary: find -size handling not POSIX compliant Product: Busybox Version: 1.37.x Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Standard Compliance Assignee: unassigned at busybox.net Reporter: stephane+bb at chazelas.org CC: busybox-cvs at busybox.net Target Milestone: --- Per POSIX (https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/find.html) find . -size n is meant to return the files whose size rounded up to an integer number of 512-byte units is 1. For instance, `find . -size 1` is meant to report the files whose size ranges from 1 to 512 bytes (the ones that would typically occupy one sector of disk space in the olden days). But for busybox (and toybox, which shares the same non-conformance), it only reports files whose size is exactly 512. There are similar problems for `find . -size +n` and `find . -size -n`. Note the behaviour when using suffixes other than `c` is fine as out of the POSIX scope and is aligned with most other implementations that support those or some of those suffixes (except GNU `find`). See https://unix.stackexchange.com/questions/774817/what-are-the-file-size-options-for-find-size-command/774840#774840 for more of the gory details including comparison with other implementations. -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Tue Apr 23 12:32:16 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Tue, 23 Apr 2024 12:32:16 +0000 Subject: [Bug 16048] New: unzip cannot extract big zip files Message-ID: https://bugs.busybox.net/show_bug.cgi?id=16048 Bug ID: 16048 Summary: unzip cannot extract big zip files Product: Busybox Version: 1.36.x Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: diego.ml at zoho.com CC: busybox-cvs at busybox.net Target Milestone: --- busybox unzip cannot extract or even list files in big zip archives. Example file: https://testfile.org/files-5GB-zip Steps to reproduce: ~~~ $ busybox unzip -v BusyBox v1.36.1 (Debian 1:1.36.1-6) multi-call binary. Usage: unzip [-lnojpqK] FILE[.zip] [FILE]... [-x FILE]... [-d DIR] Extract FILEs from ZIP archive -l List contents (with -q for short form) -n Never overwrite files (default: ask) -o Overwrite -j Do not restore paths -p Write to stdout -t Test -q Quiet -K Do not clear SUID bit -x FILE Exclude FILEs -d DIR Extract into DIR $ busybox unzip -l files-5GB-zip Archive: files-5GB-zip Length Date Time Name --------- ---------- ----- ---- unzip: short read ~~~ Official unzip and python3 -m zipfile (https://docs.python.org/3/library/zipfile.html#command-line-interface) can list and extract the same zip file. -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Apr 25 06:17:53 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 25 Apr 2024 06:17:53 +0000 Subject: [Bug 15751] `time` function reports more `maxrss` usage than GNU time In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15751 herano1999 at gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Component|Other |Standard Compliance -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Tue Apr 30 14:59:44 2024 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Tue, 30 Apr 2024 14:59:44 +0000 Subject: [Bug 16051] New: "make menuconfig" fails to find ncurses library installed by package manager on Fedora Message-ID: https://bugs.busybox.net/show_bug.cgi?id=16051 Bug ID: 16051 Summary: "make menuconfig" fails to find ncurses library installed by package manager on Fedora Product: Busybox Version: 1.36.x Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: hunterwnorman at gmail.com CC: busybox-cvs at busybox.net Target Milestone: --- I tried configuring a BusyBox install on a new Fedora system where I installed ncurses like so: "sudo dnf install ncurses-devel" and I got this error when running "make menuconfig": *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** *** Install ncurses (ncurses-devel) and try again. *** make[2]: *** [/home/test/kdev/busybox-1.36.1/scripts/kconfig/lxdialog/Makefile:15: scripts/kconfig/lxdialog/dochecklxdialog] Error 1 make[1]: *** [/home/test/kdev/busybox-1.36.1/scripts/kconfig/Makefile:14: menuconfig] Error 2 make: *** [Makefile:444: menuconfig] Error 2 After investigating, I modified the file "check-lxdialog.sh" at line 50 in the check() function: Before: check() { $cc -x c - -o $tmp 2>/dev/null <<'EOF' #include CURSES_LOC main() {} EOF if [ $? != 0 ]; then echo " *** Unable to find the ncurses libraries or the" 1>&2 echo " *** required header files." 1>&2 echo " *** 'make menuconfig' requires the ncurses libraries." 1>&2 echo " *** " 1>&2 echo " *** Install ncurses (ncurses-devel) and try again." 1>&2 echo " *** " 1>&2 exit 1 fi } After: check() { $cc -x c - -o $tmp 2>/dev/null <<'EOF' #include CURSES_LOC int main() {} EOF if [ $? != 0 ]; then echo " *** Unable to find the ncurses libraries or the" 1>&2 echo " *** required header files." 1>&2 echo " *** 'make menuconfig' requires the ncurses libraries." 1>&2 echo " *** " 1>&2 echo " *** Install ncurses (ncurses-devel) and try again." 1>&2 echo " *** " 1>&2 exit 1 fi } Making this modification caused the ncurses library to be found properly and I was able to run "make menuconfig" successfully. -- You are receiving this mail because: You are on the CC list for the bug.