aports/main/busybox/0019-Add-flag-for-not-following-symlinks-when-recursing.patch
Sören Tempel 531e69840c main/busybox: upgrade to 1.37.0
Not a lot of big changes in this release, mostly code shrinks and bug
fixes here and there. Hence, I don't expect too much breakage. Most patches
applied as is and didn't require any changes either. Nonetheless, I
rebased the entire patchset and removed patches that were backported.

The 0001-modutils-check-ELF-header-before-calling-finit_modul.patch
should be superseded by an upstream modutils change which checks that
if the loaded module file path ends in .ko and if not attempts to
uncompress it first. Thereby preventing compressed modules to be
passed to the kernel and causing a weird error to be emitted. Therefore,
this patch was removed

See: https://git.busybox.net/busybox/commit/?id=af5277f883e8fc2e0236aa9ecc5115ecaffd0ccb
2024-10-20 10:16:15 +00:00

57 lines
2.4 KiB
Diff

From 87d363a5493e5a8803f23a7dfef353ddff3d3172 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Fri, 25 Jul 2014 02:10:50 +0200
Subject: [PATCH] Add flag for not following symlinks when recursing
function old new delta
.rodata 7934 7967 +33
diff_longopts 253 270 +17
packed_usage 1704 1720 +16
diff_main 1665 1662 -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 66/-3) Total: 63 bytes
---
editors/diff.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/editors/diff.c b/editors/diff.c
index 1adc4cbc7..f7c0f5250 100644
--- a/editors/diff.c
+++ b/editors/diff.c
@@ -113,6 +113,9 @@
//usage: "\n -N Treat absent files as empty"
//usage: "\n -q Output only whether files differ"
//usage: "\n -r Recurse"
+//usage: IF_LONG_OPTS(
+//usage: "\n --no-dereference Don't follow symlinks"
+//usage: )
//usage: "\n -S Start with FILE when comparing directories"
//usage: "\n -T Make tabs line up by prefixing a tab when necessary"
//usage: "\n -s Report when two files are the same"
@@ -154,6 +157,7 @@ enum { /* Commandline flags */
FLAG_p, /* not implemented */
FLAG_B,
FLAG_E, /* not implemented */
+ FLAG_no_deref,
};
#define FLAG(x) (1 << FLAG_##x)
@@ -867,7 +871,8 @@ static void diffdir(char *p[2], const char *s_start)
* Using list.len to specify its length,
* add_to_dirlist will remove it. */
list[i].len = strlen(p[i]);
- recursive_action(p[i], ACTION_RECURSE | ACTION_FOLLOWLINKS,
+ recursive_action(p[i], ACTION_RECURSE |
+ ((option_mask32 & FLAG(no_deref)) ? 0 : ACTION_FOLLOWLINKS),
add_to_dirlist, skip_dir, &list[i]);
/* Sort dl alphabetically.
* GNU diff does this ignoring any number of trailing dots.
@@ -964,6 +969,7 @@ static const char diff_longopts[] ALIGN1 =
"report-identical-files\0" No_argument "s"
"starting-file\0" Required_argument "S"
"minimal\0" No_argument "d"
+ "no-dereference\0" No_argument "\xff"
;
# define GETOPT32 getopt32long
# define LONGOPTS ,diff_longopts