Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package busybox for openSUSE:Factory checked in at 2023-06-07 23:06:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/busybox (Old) and /work/SRC/openSUSE:Factory/.busybox.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "busybox" Wed Jun 7 23:06:29 2023 rev:83 rq:1091097 version:1.36.1 Changes: -------- --- /work/SRC/openSUSE:Factory/busybox/busybox.changes 2023-01-10 14:59:19.861052400 +0100 +++ /work/SRC/openSUSE:Factory/.busybox.new.15902/busybox.changes 2023-06-07 23:06:58.487187540 +0200 @@ -1,0 +2,10 @@ +Fri Jun 2 21:08:22 UTC 2023 - Dirk Müller <[email protected]> + +- update to 1.36.1: + * fixes for line editing, detection of hardware sha1/sha256 + support, unzip + (do not create suid/sgid files unless -K), + shell (printf and sleep with no args, handing of SIGINT + in sleep), ed. + +------------------------------------------------------------------- Old: ---- busybox-1.36.0.tar.bz2 busybox-1.36.0.tar.bz2.sig New: ---- busybox-1.36.1.tar.bz2 busybox-1.36.1.tar.bz2.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ busybox.spec ++++++ --- /var/tmp/diff_new_pack.OEJYe4/_old 2023-06-07 23:06:59.227191838 +0200 +++ /var/tmp/diff_new_pack.OEJYe4/_new 2023-06-07 23:06:59.231191860 +0200 @@ -24,7 +24,7 @@ %bcond_without static Name: busybox -Version: 1.36.0 +Version: 1.36.1 Release: 0 Summary: Minimalist variant of UNIX utilities linked in a single executable License: GPL-2.0-or-later ++++++ busybox-1.36.0.tar.bz2 -> busybox-1.36.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/busybox-1.36.0/Makefile new/busybox-1.36.1/Makefile --- old/busybox-1.36.0/Makefile 2023-01-03 15:17:01.000000000 +0100 +++ new/busybox-1.36.1/Makefile 2023-05-19 00:31:00.000000000 +0200 @@ -1,6 +1,6 @@ VERSION = 1 PATCHLEVEL = 36 -SUBLEVEL = 0 +SUBLEVEL = 1 EXTRAVERSION = NAME = Unnamed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/busybox-1.36.0/archival/unzip.c new/busybox-1.36.1/archival/unzip.c --- old/busybox-1.36.0/archival/unzip.c 2023-01-03 15:17:01.000000000 +0100 +++ new/busybox-1.36.1/archival/unzip.c 2023-03-28 17:42:00.000000000 +0200 @@ -56,7 +56,7 @@ //kbuild:lib-$(CONFIG_UNZIP) += unzip.o //usage:#define unzip_trivial_usage -//usage: "[-lnojpq] FILE[.zip] [FILE]... [-x FILE]... [-d DIR]" +//usage: "[-lnojpqK] FILE[.zip] [FILE]... [-x FILE]... [-d DIR]" //usage:#define unzip_full_usage "\n\n" //usage: "Extract FILEs from ZIP archive\n" //usage: "\n -l List contents (with -q for short form)" @@ -66,6 +66,7 @@ //usage: "\n -p Write to stdout" //usage: "\n -t Test" //usage: "\n -q Quiet" +//usage: "\n -K Do not clear SUID bit" //usage: "\n -x FILE Exclude FILEs" //usage: "\n -d DIR Extract into DIR" @@ -494,6 +495,7 @@ OPT_l = (1 << 0), OPT_x = (1 << 1), OPT_j = (1 << 2), + OPT_K = (1 << 3), }; unsigned opts; smallint quiet = 0; @@ -559,7 +561,7 @@ opts = 0; /* '-' makes getopt return 1 for non-options */ - while ((i = getopt(argc, argv, "-d:lnotpqxjv")) != -1) { + while ((i = getopt(argc, argv, "-d:lnotpqxjvK")) != -1) { switch (i) { case 'd': /* Extract to base directory */ base_dir = optarg; @@ -602,6 +604,10 @@ opts |= OPT_j; break; + case 'K': + opts |= OPT_K; + break; + case 1: if (!src_fn) { /* The zip file */ @@ -819,7 +825,10 @@ # endif if ((cdf.fmt.version_made_by >> 8) == 3) { /* This archive is created on Unix */ - dir_mode = file_mode = (cdf.fmt.external_attributes >> 16); + file_mode = (cdf.fmt.external_attributes >> 16); + if (!(opts & OPT_K)) + file_mode &= ~(mode_t)(S_ISUID | S_ISGID); + dir_mode = file_mode; } } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/busybox-1.36.0/coreutils/printf.c new/busybox-1.36.1/coreutils/printf.c --- old/busybox-1.36.0/coreutils/printf.c 2023-01-03 15:17:01.000000000 +0100 +++ new/busybox-1.36.1/coreutils/printf.c 2023-04-25 16:47:22.000000000 +0200 @@ -428,7 +428,7 @@ if (argv[1] && argv[1][0] == '-' && argv[1][1] == '-' && !argv[1][2]) argv++; if (!argv[1]) { - if (ENABLE_ASH_PRINTF + if ((ENABLE_ASH_PRINTF || ENABLE_HUSH_PRINTF) && applet_name[0] != 'p' ) { bb_simple_error_msg("usage: printf FORMAT [ARGUMENT...]"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/busybox-1.36.0/coreutils/sleep.c new/busybox-1.36.1/coreutils/sleep.c --- old/busybox-1.36.0/coreutils/sleep.c 2023-01-03 15:17:01.000000000 +0100 +++ new/busybox-1.36.1/coreutils/sleep.c 2023-04-25 16:47:22.000000000 +0200 @@ -65,15 +65,29 @@ { duration_t duration; + /* Note: sleep_main may be directly called from ash as a builtin. + * This brings some complications: + * + we can't use xfunc here + * + we can't use bb_show_usage + * + applet_name can be the name of the shell + */ ++argv; - if (!*argv) + if (!*argv) { + /* Without this, bare "sleep" in ash shows _ash_ --help */ + /* (ash can be the "sh" applet as well, so check 2nd char) */ + if (ENABLE_ASH_SLEEP && applet_name[1] != 'l') { + bb_simple_error_msg("sleep: missing operand"); + return EXIT_FAILURE; + } bb_show_usage(); + } /* GNU sleep accepts "inf", "INF", "infinity" and "INFINITY" */ if (strncasecmp(argv[0], "inf", 3) == 0) for (;;) sleep(INT_MAX); +//FIXME: in ash, "sleep 123qwerty" as a builtin aborts the shell #if ENABLE_FEATURE_FANCY_SLEEP duration = 0; do { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/busybox-1.36.0/editors/ed.c new/busybox-1.36.1/editors/ed.c --- old/busybox-1.36.0/editors/ed.c 2023-01-03 15:17:01.000000000 +0100 +++ new/busybox-1.36.1/editors/ed.c 2023-01-05 16:26:49.000000000 +0100 @@ -720,7 +720,7 @@ if (deltaLen <= 0) { memcpy(&lp->data[offset], newStr, newLen); if (deltaLen) { - memcpy(&lp->data[offset + newLen], + memmove(&lp->data[offset + newLen], &lp->data[offset + oldLen], lp->len - offset - oldLen); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/busybox-1.36.0/libbb/duration.c new/busybox-1.36.1/libbb/duration.c --- old/busybox-1.36.0/libbb/duration.c 2023-01-03 15:17:01.000000000 +0100 +++ new/busybox-1.36.1/libbb/duration.c 2023-04-25 16:47:22.000000000 +0200 @@ -76,16 +76,14 @@ ts.tv_sec = duration; ts.tv_nsec = (duration - ts.tv_sec) * 1000000000; } - /* NB: if ENABLE_ASH_SLEEP, we end up here if "sleep N" - * is run in ash. ^C will still work, because ash's signal handler - * does not return (it longjumps), the below loop - * will not continue looping. - * (This wouldn't work in hush) + /* NB: ENABLE_ASH_SLEEP requires that we do NOT loop on EINTR here: + * otherwise, traps won't execute until we finish looping. */ - do { - errno = 0; - nanosleep(&ts, &ts); - } while (errno == EINTR); + //do { + // errno = 0; + // nanosleep(&ts, &ts); + //} while (errno == EINTR); + nanosleep(&ts, &ts); } #else duration_t FAST_FUNC parse_duration_str(char *str) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/busybox-1.36.0/libbb/hash_md5_sha.c new/busybox-1.36.1/libbb/hash_md5_sha.c --- old/busybox-1.36.0/libbb/hash_md5_sha.c 2023-01-03 15:17:01.000000000 +0100 +++ new/busybox-1.36.1/libbb/hash_md5_sha.c 2023-03-29 15:50:40.000000000 +0200 @@ -1178,7 +1178,7 @@ if (!shaNI) { unsigned eax = 7, ebx = ebx, ecx = 0, edx = edx; cpuid(&eax, &ebx, &ecx, &edx); - shaNI = ((ebx >> 29) << 1) - 1; + shaNI = ((ebx >> 28) & 2) - 1; /* bit 29 -> 1 or -1 */ } if (shaNI > 0) ctx->process_block = sha1_process_block64_shaNI; @@ -1232,7 +1232,7 @@ if (!shaNI) { unsigned eax = 7, ebx = ebx, ecx = 0, edx = edx; cpuid(&eax, &ebx, &ecx, &edx); - shaNI = ((ebx >> 29) << 1) - 1; + shaNI = ((ebx >> 28) & 2) - 1; /* bit 29 -> 1 or -1 */ } if (shaNI > 0) ctx->process_block = sha256_process_block64_shaNI; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/busybox-1.36.0/libbb/lineedit.c new/busybox-1.36.1/libbb/lineedit.c --- old/busybox-1.36.0/libbb/lineedit.c 2023-01-03 15:17:01.000000000 +0100 +++ new/busybox-1.36.1/libbb/lineedit.c 2023-04-25 16:47:22.000000000 +0200 @@ -254,7 +254,7 @@ const char *home; # if ENABLE_SHELL_ASH || ENABLE_SHELL_HUSH - home = state->sh_get_var ? state->sh_get_var("HOME") : getenv("HOME"); + home = state && state->sh_get_var ? state->sh_get_var("HOME") : getenv("HOME"); # else home = getenv("HOME"); # endif @@ -825,8 +825,8 @@ res[npth++] = tmp; } /* special case: "match subdirectories of the current directory" */ - /*res[npth++] = NULL; - filled by xzalloc() */ - return npth; + /*res[npth] = NULL; - filled by xzalloc() */ + return npth + 1; } /* Complete command, directory or file name. @@ -2038,7 +2038,7 @@ if (!cwd_buf) { const char *home; # if EDITING_HAS_sh_get_var - cwd_buf = state->sh_get_var + cwd_buf = state && state->sh_get_var ? xstrdup(state->sh_get_var("PWD")) : xrealloc_getcwd_or_warn(NULL); # else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/busybox-1.36.0/procps/kill.c new/busybox-1.36.1/procps/kill.c --- old/busybox-1.36.0/procps/kill.c 2023-01-03 15:17:01.000000000 +0100 +++ new/busybox-1.36.1/procps/kill.c 2023-04-25 16:47:22.000000000 +0200 @@ -85,8 +85,8 @@ * This brings some complications: * * + we can't use xfunc here - * + we can't use applet_name * + we can't use bb_show_usage + * + applet_name can be the name of the shell * (doesn't apply for killall[5], still should be careful b/c NOFORK) * * kill %n gets translated into kill ' -<process group>' by shell (note space!) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/busybox-1.36.0/shell/ash.c new/busybox-1.36.1/shell/ash.c --- old/busybox-1.36.0/shell/ash.c 2023-01-03 15:17:01.000000000 +0100 +++ new/busybox-1.36.1/shell/ash.c 2023-04-25 16:47:22.000000000 +0200 @@ -11264,8 +11264,8 @@ /* * Print appropriate message(s) if mail has arrived. * If mail_var_path_changed is set, - * then the value of MAIL has mail_var_path_changed, - * so we just update the values. + * then the value of MAIL has changed, + * so we just update the hash value. */ static void chkmail(void) @@ -11284,10 +11284,9 @@ int len; len = padvance_magic(&mpath, nullstr, 2); - if (!len) + if (len < 0) break; p = stackblock(); - break; if (*p == '\0') continue; for (q = p; *q; q++) @@ -11306,8 +11305,8 @@ if (!mail_var_path_changed && mailtime_hash != new_hash) { if (mailtime_hash != 0) out2str("you have mail\n"); - mailtime_hash = new_hash; } + mailtime_hash = new_hash; mail_var_path_changed = 0; popstackmark(&smark); }
