Import rpm: c8s
This commit is contained in:
commit
d37035c0ad
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SOURCES/strace-5.13.tar.xz
|
||||||
|
/strace-5.13.tar.xz
|
@ -0,0 +1,77 @@
|
|||||||
|
From a034f8a50cbe15d250457ed2eefbf9db059f724f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||||
|
Date: Wed, 18 Aug 2021 21:48:38 +0200
|
||||||
|
Subject: [PATCH 147/150] filter_qualify: free allocated data on the error path
|
||||||
|
exit of parse_poke_token
|
||||||
|
|
||||||
|
While not terribly required due to the fact that issues with option
|
||||||
|
parsing lead to program termination, these changes avoid leaking data
|
||||||
|
allocated in the function's scope and not stored elsewhere, which might
|
||||||
|
come handy if it ever be used dynamically during the runtime.
|
||||||
|
|
||||||
|
This also has been reported as resource leaks by covscan, and these
|
||||||
|
changes should calm it.
|
||||||
|
|
||||||
|
* src/filter_qualify.c (parse_poke_token): Go to err label instead of
|
||||||
|
returning right away; free poke->data, poke, and str_tokenized before
|
||||||
|
returning false.
|
||||||
|
|
||||||
|
References: https://bugzilla.redhat.com/show_bug.cgi?id=1995509
|
||||||
|
---
|
||||||
|
src/filter_qualify.c | 18 ++++++++++++------
|
||||||
|
1 file changed, 12 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/filter_qualify.c b/src/filter_qualify.c
|
||||||
|
index df05496..a1a6471 100644
|
||||||
|
--- a/src/filter_qualify.c
|
||||||
|
+++ b/src/filter_qualify.c
|
||||||
|
@@ -169,34 +169,40 @@ parse_poke_token(const char *input, struct inject_opts *fopts, bool isenter)
|
||||||
|
poke->is_enter = isenter;
|
||||||
|
|
||||||
|
if ((val = STR_STRIP_PREFIX(token, "@arg")) == token)
|
||||||
|
- return false;
|
||||||
|
+ goto err;
|
||||||
|
if ((val[0] >= '1') && (val[0] <= '7')) {
|
||||||
|
poke->arg_no = val[0] - '0';
|
||||||
|
} else {
|
||||||
|
- return false;
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
if (val[1] != '=')
|
||||||
|
- return false;
|
||||||
|
+ goto err;
|
||||||
|
val += 2;
|
||||||
|
|
||||||
|
data_len = strlen(val);
|
||||||
|
if ((data_len == 0) || (data_len % 2) || (data_len > 2048))
|
||||||
|
- return false;
|
||||||
|
+ goto err;
|
||||||
|
data_len /= 2;
|
||||||
|
poke->data_len = data_len;
|
||||||
|
poke->data = xmalloc(data_len);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < data_len; i++)
|
||||||
|
if (sscanf(&val[2 * i], "%2hhx", &poke->data[i]) != 1)
|
||||||
|
- return false;
|
||||||
|
+ goto err;
|
||||||
|
|
||||||
|
if (poke_add(fopts->data.poke_idx, poke))
|
||||||
|
- return false;
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
free(str_tokenized);
|
||||||
|
|
||||||
|
fopts->data.flags |= flag;
|
||||||
|
return true;
|
||||||
|
+
|
||||||
|
+err:
|
||||||
|
+ free(poke->data);
|
||||||
|
+ free(poke);
|
||||||
|
+ free(str_tokenized);
|
||||||
|
+ return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
@ -0,0 +1,70 @@
|
|||||||
|
From 3f3dd44f1964c54b55e8c84343579bd7c1924df5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||||
|
Date: Wed, 18 Aug 2021 21:49:12 +0200
|
||||||
|
Subject: [PATCH 148/150] macros: expand BIT macros, add MASK macros; add
|
||||||
|
*_SAFE macros
|
||||||
|
|
||||||
|
These macros might make reading a code that often converts between powers
|
||||||
|
of 2 and values/masks a bit easier; moreover, the *_SAFE versions should
|
||||||
|
help in cases where the shift values are expected to be equal to the type
|
||||||
|
bit width (which lead to UB otherwise).
|
||||||
|
|
||||||
|
Switching from BIT to BIT32 should also clarify bitness, which may be somewhat
|
||||||
|
murky at times (cf. printxval, printflags, and printxvals).
|
||||||
|
|
||||||
|
* src/macros.h [!BIT] (BIT): Rename to...
|
||||||
|
[!BIT32] (BIT32): ...this.
|
||||||
|
[!BIT64] (BIT64): New macro.
|
||||||
|
[!MASK32] (MASK32): Likewise.
|
||||||
|
[!MASK64] (MASK64): Likewise.
|
||||||
|
(BIT32_SAFE, BIT64_SAFE, MASK32_SAFE, MASK64_SAFE): New macros.
|
||||||
|
(FLAG): Use BIT32.
|
||||||
|
---
|
||||||
|
src/macros.h | 30 +++++++++++++++++++++++++++---
|
||||||
|
1 file changed, 27 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/macros.h b/src/macros.h
|
||||||
|
index 467f5d0..2d7a83d 100644
|
||||||
|
--- a/src/macros.h
|
||||||
|
+++ b/src/macros.h
|
||||||
|
@@ -78,10 +78,34 @@ is_filled(const char *ptr, char fill, size_t size)
|
||||||
|
# define IS_ARRAY_ZERO(arr_) \
|
||||||
|
is_filled((const char *) (arr_), 0, sizeof(arr_) + MUST_BE_ARRAY(arr_))
|
||||||
|
|
||||||
|
-# ifndef BIT
|
||||||
|
-# define BIT(x_) (1U << (x_))
|
||||||
|
+# ifndef BIT32
|
||||||
|
+# define BIT32(x_) (1U << (x_))
|
||||||
|
# endif
|
||||||
|
|
||||||
|
-# define FLAG(name_) name_ = BIT(name_##_BIT)
|
||||||
|
+# ifndef BIT64
|
||||||
|
+# define BIT64(x_) (1ULL << (x_))
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
+# ifndef MASK32
|
||||||
|
+# define MASK32(x_) (BIT32(x_) - 1U)
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
+# ifndef MASK64
|
||||||
|
+# define MASK64(x_) (BIT64(x_) - 1ULL)
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * "Safe" versions that avoid UB for values that are >= type bit size
|
||||||
|
+ * (the usually expected behaviour of the bit shift in that case is zero,
|
||||||
|
+ * but at least powerpc is notorious for returning the input value when shift
|
||||||
|
+ * by 64 bits is performed).
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+# define BIT32_SAFE(x_) ((x_) < 32 ? BIT32(x_) : 0)
|
||||||
|
+# define BIT64_SAFE(x_) ((x_) < 64 ? BIT64(x_) : 0)
|
||||||
|
+# define MASK32_SAFE(x_) (BIT32_SAFE(x_) - 1U)
|
||||||
|
+# define MASK64_SAFE(x_) (BIT64_SAFE(x_) - 1ULL)
|
||||||
|
+
|
||||||
|
+# define FLAG(name_) name_ = BIT32(name_##_BIT)
|
||||||
|
|
||||||
|
#endif /* !STRACE_MACROS_H */
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
151
0152-trie-use-BIT-and-MASK-macros.patch
Normal file
151
0152-trie-use-BIT-and-MASK-macros.patch
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
From 8ef5456338a947944cc03b95c22c837af5884ddc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||||
|
Date: Wed, 18 Aug 2021 21:51:22 +0200
|
||||||
|
Subject: [PATCH 149/150] trie: use BIT* and MASK* macros
|
||||||
|
|
||||||
|
This makes reading the code a bit easier. It also solves some issues
|
||||||
|
where there is a hypothertical possibility of having bit shifts of size
|
||||||
|
64, by virtue of using the *_SAFE macros (that should silence some
|
||||||
|
reported "left shifting by more than 63 bits has undefined behavior"
|
||||||
|
covscan issues).
|
||||||
|
|
||||||
|
* src/trie.c (trie_create): Use BIT32, MASK64.
|
||||||
|
(trie_create_data_block): Use BIT32, change iterator variable type
|
||||||
|
to size_t.
|
||||||
|
(trie_get_node): Use BIT64, MASK64.
|
||||||
|
(trie_data_block_calc_pos): Use BIT32, MASK64, MASK64_SAFE.
|
||||||
|
(trie_iterate_keys_node): Use BIT64, MASK64, MASK64_SAFE.
|
||||||
|
(trie_free_node): Use BIT64.
|
||||||
|
---
|
||||||
|
src/trie.c | 34 +++++++++++++++++-----------------
|
||||||
|
1 file changed, 17 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/trie.c b/src/trie.c
|
||||||
|
index 586ff25..0a231e4 100644
|
||||||
|
--- a/src/trie.c
|
||||||
|
+++ b/src/trie.c
|
||||||
|
@@ -15,6 +15,7 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "trie.h"
|
||||||
|
+#include "macros.h"
|
||||||
|
#include "xmalloc.h"
|
||||||
|
|
||||||
|
static const uint8_t ptr_sz_lg = (sizeof(void *) == 8 ? 6 : 5);
|
||||||
|
@@ -87,7 +88,7 @@ trie_create(uint8_t key_size, uint8_t item_size_lg, uint8_t node_key_bits,
|
||||||
|
/ t->node_key_bits;
|
||||||
|
|
||||||
|
if (item_size_lg != 6)
|
||||||
|
- t->empty_value &= (((uint64_t) 1 << (1 << t->item_size_lg)) - 1);
|
||||||
|
+ t->empty_value &= MASK64(BIT32(t->item_size_lg));
|
||||||
|
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
@@ -96,8 +97,8 @@ static void *
|
||||||
|
trie_create_data_block(struct trie *t)
|
||||||
|
{
|
||||||
|
uint64_t fill_value = t->empty_value;
|
||||||
|
- for (int i = 1; i < 1 << (6 - t->item_size_lg); i++) {
|
||||||
|
- fill_value <<= (1 << t->item_size_lg);
|
||||||
|
+ for (size_t i = 1; i < BIT32(6 - t->item_size_lg); i++) {
|
||||||
|
+ fill_value <<= BIT32(t->item_size_lg);
|
||||||
|
fill_value |= t->empty_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -105,7 +106,7 @@ trie_create_data_block(struct trie *t)
|
||||||
|
if (sz < 6)
|
||||||
|
sz = 6;
|
||||||
|
|
||||||
|
- size_t count = 1 << (sz - 6);
|
||||||
|
+ size_t count = BIT32(sz - 6);
|
||||||
|
uint64_t *data_block = xcalloc(count, 8);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < count; i++)
|
||||||
|
@@ -119,7 +120,7 @@ trie_get_node(struct trie *t, uint64_t key, bool auto_create)
|
||||||
|
{
|
||||||
|
void **cur_node = &(t->data);
|
||||||
|
|
||||||
|
- if (t->key_size < 64 && key > (uint64_t) 1 << t->key_size)
|
||||||
|
+ if (t->key_size < 64 && key > MASK64(t->key_size))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
for (uint8_t cur_depth = 0; cur_depth <= t->max_depth; cur_depth++) {
|
||||||
|
@@ -133,13 +134,13 @@ trie_get_node(struct trie *t, uint64_t key, bool auto_create)
|
||||||
|
if (cur_depth == t->max_depth)
|
||||||
|
*cur_node = trie_create_data_block(t);
|
||||||
|
else
|
||||||
|
- *cur_node = xcalloc(1 << sz, 1);
|
||||||
|
+ *cur_node = xcalloc(BIT64(sz), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cur_depth == t->max_depth)
|
||||||
|
break;
|
||||||
|
|
||||||
|
- size_t pos = (key >> offs) & ((1 << (sz - ptr_sz_lg)) - 1);
|
||||||
|
+ size_t pos = (key >> offs) & MASK64(sz - ptr_sz_lg);
|
||||||
|
cur_node = (((void **) (*cur_node)) + pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -152,7 +153,7 @@ trie_data_block_calc_pos(struct trie *t, uint64_t key,
|
||||||
|
{
|
||||||
|
uint64_t key_mask;
|
||||||
|
|
||||||
|
- key_mask = (1 << t->data_block_key_bits) - 1;
|
||||||
|
+ key_mask = MASK64(t->data_block_key_bits);
|
||||||
|
*pos = (key & key_mask) >> (6 - t->item_size_lg);
|
||||||
|
|
||||||
|
if (t->item_size_lg == 6) {
|
||||||
|
@@ -161,10 +162,10 @@ trie_data_block_calc_pos(struct trie *t, uint64_t key,
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- key_mask = (1 << (6 - t->item_size_lg)) - 1;
|
||||||
|
- *offs = (key & key_mask) * (1 << t->item_size_lg);
|
||||||
|
+ key_mask = MASK64(6 - t->item_size_lg);
|
||||||
|
+ *offs = (key & key_mask) << t->item_size_lg;
|
||||||
|
|
||||||
|
- *mask = (((uint64_t) 1 << (1 << t->item_size_lg)) - 1) << *offs;
|
||||||
|
+ *mask = MASK64_SAFE(BIT32(t->item_size_lg)) << *offs;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
@@ -211,7 +212,7 @@ trie_iterate_keys_node(struct trie *t,
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (t->key_size < 64) {
|
||||||
|
- uint64_t key_max = ((uint64_t) 1 << t->key_size) - 1;
|
||||||
|
+ uint64_t key_max = MASK64(t->key_size);
|
||||||
|
if (end > key_max)
|
||||||
|
end = key_max;
|
||||||
|
}
|
||||||
|
@@ -228,15 +229,14 @@ trie_iterate_keys_node(struct trie *t,
|
||||||
|
t->key_size :
|
||||||
|
trie_get_node_bit_offs(t, depth - 1);
|
||||||
|
|
||||||
|
- uint64_t first_key_in_node = start &
|
||||||
|
- (uint64_t) -1 << parent_node_bit_off;
|
||||||
|
+ uint64_t first_key_in_node = start & ~MASK64_SAFE(parent_node_bit_off);
|
||||||
|
|
||||||
|
uint8_t node_bit_off = trie_get_node_bit_offs(t, depth);
|
||||||
|
uint8_t node_key_bits = parent_node_bit_off - node_bit_off;
|
||||||
|
- uint64_t mask = ((uint64_t) 1 << (node_key_bits)) - 1;
|
||||||
|
+ uint64_t mask = MASK64_SAFE(node_key_bits);
|
||||||
|
uint64_t start_index = (start >> node_bit_off) & mask;
|
||||||
|
uint64_t end_index = (end >> node_bit_off) & mask;
|
||||||
|
- uint64_t child_key_count = (uint64_t) 1 << node_bit_off;
|
||||||
|
+ uint64_t child_key_count = BIT64(node_bit_off);
|
||||||
|
|
||||||
|
uint64_t count = 0;
|
||||||
|
|
||||||
|
@@ -274,7 +274,7 @@ trie_free_node(struct trie *t, void *node, uint8_t depth)
|
||||||
|
if (depth >= t->max_depth)
|
||||||
|
goto free_node;
|
||||||
|
|
||||||
|
- size_t sz = 1 << (trie_get_node_size(t, depth) - ptr_sz_lg);
|
||||||
|
+ size_t sz = BIT64(trie_get_node_size(t, depth) - ptr_sz_lg);
|
||||||
|
for (size_t i = 0; i < sz; i++)
|
||||||
|
trie_free_node(t, ((void **) node)[i], depth + 1);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
@ -0,0 +1,52 @@
|
|||||||
|
From 3a68f90c2a5a208b475cc2014f85ae04541ec5b6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||||
|
Date: Fri, 20 Aug 2021 21:31:01 +0200
|
||||||
|
Subject: [PATCH 150/150] tee: rewrite num_params access in tee_fetch_buf_data
|
||||||
|
|
||||||
|
Pointer to num_params field of the fetched structure is passed in a
|
||||||
|
separate function argument which provokes covscan complaints about
|
||||||
|
uninitialised accesses and also tingles my aliasing rules senses.
|
||||||
|
Rewrite to access it via the arg_struct argument which is fetched
|
||||||
|
earlier in the function flow.
|
||||||
|
|
||||||
|
* src/tee.c (TEE_FETCH_BUF_DATA): Change &arg_.num_params
|
||||||
|
to offsetof(typeof(arg_), num_params).
|
||||||
|
(tee_fetch_buf_data): Accept offset of the num_params field instead
|
||||||
|
of pointer to it; reconstruct the num_params pointer using it.
|
||||||
|
---
|
||||||
|
src/tee.c | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/tee.c b/src/tee.c
|
||||||
|
index f9eda52..d7e9b15 100644
|
||||||
|
--- a/src/tee.c
|
||||||
|
+++ b/src/tee.c
|
||||||
|
@@ -33,7 +33,7 @@ struct tee_ioctl_shm_register_fd_data {
|
||||||
|
|
||||||
|
#define TEE_FETCH_BUF_DATA(buf_, arg_, params_) \
|
||||||
|
tee_fetch_buf_data(tcp, arg, &buf_, sizeof(arg_), \
|
||||||
|
- &arg_, &arg_.num_params, \
|
||||||
|
+ &arg_, offsetof(typeof(arg_), num_params), \
|
||||||
|
params_)
|
||||||
|
|
||||||
|
/* session id is printed as 0x%x in libteec */
|
||||||
|
@@ -56,7 +56,7 @@ tee_fetch_buf_data(struct tcb *const tcp,
|
||||||
|
struct tee_ioctl_buf_data *buf,
|
||||||
|
size_t arg_size,
|
||||||
|
void *arg_struct,
|
||||||
|
- unsigned *num_params,
|
||||||
|
+ size_t num_params_offs,
|
||||||
|
uint64_t *params)
|
||||||
|
{
|
||||||
|
if (umove_or_printaddr(tcp, arg, buf))
|
||||||
|
@@ -69,6 +69,7 @@ tee_fetch_buf_data(struct tcb *const tcp,
|
||||||
|
tee_print_buf(buf);
|
||||||
|
return RVAL_IOCTL_DECODED;
|
||||||
|
}
|
||||||
|
+ uint32_t *num_params = (uint32_t *) (arg_struct + num_params_offs);
|
||||||
|
if (entering(tcp) &&
|
||||||
|
(arg_size + TEE_IOCTL_PARAM_SIZE(*num_params) != buf->buf_len)) {
|
||||||
|
/*
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
55
0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch
Normal file
55
0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
From e27b06773eaf5c0307bcc5637d7457be9be1e6ea Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||||
|
Date: Wed, 1 Dec 2021 17:11:02 +0100
|
||||||
|
Subject: [PATCH] print_ifindex: fix IFNAME_QUOTED_SZ definition
|
||||||
|
|
||||||
|
sizeof(IFNAMSIZ) instead of IFNAMSIZ was mistakenly used
|
||||||
|
for IFNAME_QUOTED_SZ initial definition in commit v4.23~87
|
||||||
|
"print_ifindex: respect xlat style settings".
|
||||||
|
|
||||||
|
* src/print_ifindex.c (IFNAME_QUOTED_SZ): Use IFNAMSIZ
|
||||||
|
instead of sizeof(IFNAMSIZ).
|
||||||
|
* NEWS: Mention it.
|
||||||
|
|
||||||
|
Reported-by: Paulo Andrade <pandrade@redhat.com>
|
||||||
|
Suggested-by: Paulo Andrade <pandrade@redhat.com>
|
||||||
|
Fixes: v4.23~87 "print_ifindex: respect xlat style settings"
|
||||||
|
References: https://bugzilla.redhat.com/show_bug.cgi?id=2028146
|
||||||
|
---
|
||||||
|
NEWS | 4 ++++
|
||||||
|
src/print_ifindex.c | 2 +-
|
||||||
|
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/NEWS b/NEWS
|
||||||
|
index 9bab673..a3036b8 100644
|
||||||
|
--- a/NEWS
|
||||||
|
+++ b/NEWS
|
||||||
|
@@ -16,6 +16,12 @@ Noteworthy changes in release ?.?? (????-??-??)
|
||||||
|
PTRACE_*, RTM_*, RTPROT_*, TRAP_*, UFFD_*, UFFDIO_*, and V4L2_* constants.
|
||||||
|
* Updated lists of ioctl commands from Linux 5.13.
|
||||||
|
|
||||||
|
+ * Bug fixes
|
||||||
|
+ * Fixed insufficient buffer size used for network interface name printing,
|
||||||
|
+ that previously led to assertions on attempts of printing interface names
|
||||||
|
+ that require quoting, for example, names longer than 4 characters in -xx
|
||||||
|
+ mode (addresses RHBZ bug #2028146).
|
||||||
|
+
|
||||||
|
* Portability
|
||||||
|
* On powerpc and powerpc64, linux kernel >= 2.6.23 is required.
|
||||||
|
Older versions without a decent PTRACE_GETREGS support will not work.
|
||||||
|
diff --git a/src/print_ifindex.c b/src/print_ifindex.c
|
||||||
|
index ec48093..dc9d592 100644
|
||||||
|
--- a/src/print_ifindex.c
|
||||||
|
+++ b/src/print_ifindex.c
|
||||||
|
@@ -13,7 +13,7 @@
|
||||||
|
|
||||||
|
# define INI_PFX "if_nametoindex(\""
|
||||||
|
# define INI_SFX "\")"
|
||||||
|
-# define IFNAME_QUOTED_SZ (sizeof(IFNAMSIZ) * 4 + 3)
|
||||||
|
+# define IFNAME_QUOTED_SZ (IFNAMSIZ * 4 + 3)
|
||||||
|
|
||||||
|
const char *
|
||||||
|
get_ifname(const unsigned int ifindex)
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
208
0168-m4-fix-st_SELINUX-check.patch
Normal file
208
0168-m4-fix-st_SELINUX-check.patch
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
From b8f375c2c8140e759122bca3e3469386d3ba5184 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Dmitry V. Levin" <ldv@strace.io>
|
||||||
|
Date: Mon, 29 Nov 2021 08:00:00 +0000
|
||||||
|
Subject: [PATCH 168/174] m4: fix st_SELINUX check
|
||||||
|
|
||||||
|
* m4/st_selinux.m4: Make sure selinux support is enabled only if
|
||||||
|
all expected functions are provided by libselinux.
|
||||||
|
|
||||||
|
Fixes: v5.12~49 "Implement --secontext[=full] option to display SELinux contexts"
|
||||||
|
---
|
||||||
|
m4/st_selinux.m4 | 36 ++++++++++++++++--------------------
|
||||||
|
1 file changed, 16 insertions(+), 20 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/m4/st_selinux.m4 b/m4/st_selinux.m4
|
||||||
|
index da72a48..7b24eba 100644
|
||||||
|
--- a/m4/st_selinux.m4
|
||||||
|
+++ b/m4/st_selinux.m4
|
||||||
|
@@ -34,29 +34,25 @@ AS_IF([test "x$with_libselinux" != xno],
|
||||||
|
AS_IF([test "x$found_selinux_h" = xyes],
|
||||||
|
[saved_LDFLAGS="$LDFLAGS"
|
||||||
|
LDFLAGS="$LDFLAGS $libselinux_LDFLAGS"
|
||||||
|
- AC_CHECK_LIB([selinux],[getpidcon],
|
||||||
|
- [libselinux_LIBS="-lselinux"
|
||||||
|
- enable_secontext=yes
|
||||||
|
- ],
|
||||||
|
- [if test "x$with_libselinux" != xcheck; then
|
||||||
|
- AC_MSG_FAILURE([failed to find getpidcon in libselinux])
|
||||||
|
- fi
|
||||||
|
- ]
|
||||||
|
- )
|
||||||
|
- AC_CHECK_LIB([selinux],[getfilecon],
|
||||||
|
- [libselinux_LIBS="-lselinux"
|
||||||
|
- enable_secontext=yes
|
||||||
|
- ],
|
||||||
|
- [if test "x$with_libselinux" != xcheck; then
|
||||||
|
- AC_MSG_FAILURE([failed to find getfilecon in libselinux])
|
||||||
|
- fi
|
||||||
|
- ]
|
||||||
|
+ missing=
|
||||||
|
+ for func in getpidcon getfilecon; do
|
||||||
|
+ AC_CHECK_LIB([selinux], [$func], [:],
|
||||||
|
+ [missing="$missing $func"])
|
||||||
|
+ done
|
||||||
|
+ AS_IF([test "x$missing" = x],
|
||||||
|
+ [libselinux_LIBS="-lselinux"
|
||||||
|
+ enable_secontext=yes
|
||||||
|
+ ],
|
||||||
|
+ [AS_IF([test "x$with_libselinux" != xcheck],
|
||||||
|
+ [AC_MSG_FAILURE([failed to find in libselinux:$missing])]
|
||||||
|
+ )
|
||||||
|
+ ]
|
||||||
|
)
|
||||||
|
LDFLAGS="$saved_LDFLAGS"
|
||||||
|
],
|
||||||
|
- [if test "x$with_libselinux" != xcheck; then
|
||||||
|
- AC_MSG_FAILURE([failed to find selinux.h])
|
||||||
|
- fi
|
||||||
|
+ [AS_IF([test "x$with_libselinux" != xcheck],
|
||||||
|
+ [AC_MSG_FAILURE([failed to find selinux.h])]
|
||||||
|
+ )
|
||||||
|
]
|
||||||
|
)
|
||||||
|
]
|
||||||
|
--- old/configure 2022-02-07 20:17:58.364068436 +0100
|
||||||
|
+++ new/configure 2022-02-07 20:19:17.092067347 +0100
|
||||||
|
@@ -18437,9 +18437,12 @@
|
||||||
|
if test "x$found_selinux_h" = xyes; then :
|
||||||
|
saved_LDFLAGS="$LDFLAGS"
|
||||||
|
LDFLAGS="$LDFLAGS $libselinux_LDFLAGS"
|
||||||
|
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpidcon in -lselinux" >&5
|
||||||
|
-$as_echo_n "checking for getpidcon in -lselinux... " >&6; }
|
||||||
|
-if ${ac_cv_lib_selinux_getpidcon+:} false; then :
|
||||||
|
+ missing=
|
||||||
|
+ for func in getpidcon getfilecon; do
|
||||||
|
+ as_ac_Lib=`$as_echo "ac_cv_lib_selinux_$func" | $as_tr_sh`
|
||||||
|
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $func in -lselinux" >&5
|
||||||
|
+$as_echo_n "checking for $func in -lselinux... " >&6; }
|
||||||
|
+if eval \${$as_ac_Lib+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
ac_check_lib_save_LIBS=$LIBS
|
||||||
|
@@ -18453,101 +18456,59 @@
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
#endif
|
||||||
|
-char getpidcon ();
|
||||||
|
+char $func ();
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
-return getpidcon ();
|
||||||
|
+return $func ();
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
- ac_cv_lib_selinux_getpidcon=yes
|
||||||
|
+ eval "$as_ac_Lib=yes"
|
||||||
|
else
|
||||||
|
- ac_cv_lib_selinux_getpidcon=no
|
||||||
|
+ eval "$as_ac_Lib=no"
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
LIBS=$ac_check_lib_save_LIBS
|
||||||
|
fi
|
||||||
|
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_getpidcon" >&5
|
||||||
|
-$as_echo "$ac_cv_lib_selinux_getpidcon" >&6; }
|
||||||
|
-if test "x$ac_cv_lib_selinux_getpidcon" = xyes; then :
|
||||||
|
- libselinux_LIBS="-lselinux"
|
||||||
|
- enable_secontext=yes
|
||||||
|
-
|
||||||
|
+eval ac_res=\$$as_ac_Lib
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||||
|
+$as_echo "$ac_res" >&6; }
|
||||||
|
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
|
||||||
|
+ :
|
||||||
|
else
|
||||||
|
- if test "x$with_libselinux" != xcheck; then
|
||||||
|
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||||
|
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||||
|
-as_fn_error $? "failed to find getpidcon in libselinux
|
||||||
|
-See \`config.log' for more details" "$LINENO" 5; }
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
-
|
||||||
|
+ missing="$missing $func"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getfilecon in -lselinux" >&5
|
||||||
|
-$as_echo_n "checking for getfilecon in -lselinux... " >&6; }
|
||||||
|
-if ${ac_cv_lib_selinux_getfilecon+:} false; then :
|
||||||
|
- $as_echo_n "(cached) " >&6
|
||||||
|
-else
|
||||||
|
- ac_check_lib_save_LIBS=$LIBS
|
||||||
|
-LIBS="-lselinux $LIBS"
|
||||||
|
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
-/* end confdefs.h. */
|
||||||
|
-
|
||||||
|
-/* Override any GCC internal prototype to avoid an error.
|
||||||
|
- Use char because int might match the return type of a GCC
|
||||||
|
- builtin and then its argument prototype would still apply. */
|
||||||
|
-#ifdef __cplusplus
|
||||||
|
-extern "C"
|
||||||
|
-#endif
|
||||||
|
-char getfilecon ();
|
||||||
|
-int
|
||||||
|
-main ()
|
||||||
|
-{
|
||||||
|
-return getfilecon ();
|
||||||
|
- ;
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-_ACEOF
|
||||||
|
-if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
- ac_cv_lib_selinux_getfilecon=yes
|
||||||
|
-else
|
||||||
|
- ac_cv_lib_selinux_getfilecon=no
|
||||||
|
-fi
|
||||||
|
-rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
- conftest$ac_exeext conftest.$ac_ext
|
||||||
|
-LIBS=$ac_check_lib_save_LIBS
|
||||||
|
-fi
|
||||||
|
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_getfilecon" >&5
|
||||||
|
-$as_echo "$ac_cv_lib_selinux_getfilecon" >&6; }
|
||||||
|
-if test "x$ac_cv_lib_selinux_getfilecon" = xyes; then :
|
||||||
|
+ done
|
||||||
|
+ if test "x$missing" = x; then :
|
||||||
|
libselinux_LIBS="-lselinux"
|
||||||
|
- enable_secontext=yes
|
||||||
|
+ enable_secontext=yes
|
||||||
|
|
||||||
|
else
|
||||||
|
- if test "x$with_libselinux" != xcheck; then
|
||||||
|
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||||
|
+ if test "x$with_libselinux" != xcheck; then :
|
||||||
|
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||||
|
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||||
|
-as_fn_error $? "failed to find getfilecon in libselinux
|
||||||
|
+as_fn_error $? "failed to find in libselinux:$missing
|
||||||
|
See \`config.log' for more details" "$LINENO" 5; }
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
+
|
||||||
|
+fi
|
||||||
|
LDFLAGS="$saved_LDFLAGS"
|
||||||
|
|
||||||
|
else
|
||||||
|
- if test "x$with_libselinux" != xcheck; then
|
||||||
|
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||||
|
+ if test "x$with_libselinux" != xcheck; then :
|
||||||
|
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||||
|
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||||
|
as_fn_error $? "failed to find selinux.h
|
||||||
|
See \`config.log' for more details" "$LINENO" 5; }
|
||||||
|
- fi
|
||||||
|
+
|
||||||
|
+fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
6958
0169-Implement-displaying-of-expected-context-upon-mismat.patch
Normal file
6958
0169-Implement-displaying-of-expected-context-upon-mismat.patch
Normal file
File diff suppressed because it is too large
Load Diff
122
0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch
Normal file
122
0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
From f5fd689e40322a7b08a97eb2d26f192610728230 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||||
|
Date: Tue, 18 Jan 2022 16:10:28 +0100
|
||||||
|
Subject: [PATCH 170/174] tests/linkat: reset errno before SELinux context
|
||||||
|
manipulation
|
||||||
|
|
||||||
|
To avoid printing a stale error information in case of mismatch check
|
||||||
|
failure.
|
||||||
|
|
||||||
|
* tests/linkat.c: Include <errno.h>.
|
||||||
|
(main): Add "errno = 0" before update_secontext_field calls.
|
||||||
|
---
|
||||||
|
tests/linkat.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tests/linkat.c b/tests/linkat.c
|
||||||
|
index 1a869e3..c3e2ee4 100644
|
||||||
|
--- a/tests/linkat.c
|
||||||
|
+++ b/tests/linkat.c
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
#include "tests.h"
|
||||||
|
#include "scno.h"
|
||||||
|
|
||||||
|
+#include <errno.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
@@ -91,6 +92,7 @@ main(void)
|
||||||
|
free(sample_1_secontext);
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
+ errno = 0;
|
||||||
|
update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
|
||||||
|
@@ -112,6 +114,7 @@ main(void)
|
||||||
|
free(sample_1_secontext);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+ errno = 0;
|
||||||
|
update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
sample_2_secontext = sample_1_secontext;
|
||||||
|
@@ -142,6 +145,7 @@ main(void)
|
||||||
|
int dfd_old = get_dir_fd(".");
|
||||||
|
char *cwd = get_fd_path(dfd_old);
|
||||||
|
|
||||||
|
+ errno = 0;
|
||||||
|
update_secontext_field(".", SECONTEXT_TYPE, "default_t");
|
||||||
|
char *dfd_old_secontext = SECONTEXT_FILE(".");
|
||||||
|
|
||||||
|
--- a/tests-m32/linkat.c
|
||||||
|
+++ b/tests-m32/linkat.c
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
#include "tests.h"
|
||||||
|
#include "scno.h"
|
||||||
|
|
||||||
|
+#include <errno.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
@@ -91,6 +92,7 @@ main(void)
|
||||||
|
free(sample_1_secontext);
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
+ errno = 0;
|
||||||
|
update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
|
||||||
|
@@ -112,6 +114,7 @@ main(void)
|
||||||
|
free(sample_1_secontext);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+ errno = 0;
|
||||||
|
update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
sample_2_secontext = sample_1_secontext;
|
||||||
|
@@ -142,6 +145,7 @@ main(void)
|
||||||
|
int dfd_old = get_dir_fd(".");
|
||||||
|
char *cwd = get_fd_path(dfd_old);
|
||||||
|
|
||||||
|
+ errno = 0;
|
||||||
|
update_secontext_field(".", SECONTEXT_TYPE, "default_t");
|
||||||
|
char *dfd_old_secontext = SECONTEXT_FILE(".");
|
||||||
|
|
||||||
|
--- a/tests-mx32/linkat.c
|
||||||
|
+++ b/tests-mx32/linkat.c
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
#include "tests.h"
|
||||||
|
#include "scno.h"
|
||||||
|
|
||||||
|
+#include <errno.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
@@ -91,6 +92,7 @@ main(void)
|
||||||
|
free(sample_1_secontext);
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
+ errno = 0;
|
||||||
|
update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
|
||||||
|
@@ -112,6 +114,7 @@ main(void)
|
||||||
|
free(sample_1_secontext);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+ errno = 0;
|
||||||
|
update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
sample_2_secontext = sample_1_secontext;
|
||||||
|
@@ -142,6 +145,7 @@ main(void)
|
||||||
|
int dfd_old = get_dir_fd(".");
|
||||||
|
char *cwd = get_fd_path(dfd_old);
|
||||||
|
|
||||||
|
+ errno = 0;
|
||||||
|
update_secontext_field(".", SECONTEXT_TYPE, "default_t");
|
||||||
|
char *dfd_old_secontext = SECONTEXT_FILE(".");
|
||||||
|
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
356
0171-tests-secontext-add-secontext-field-getters.patch
Normal file
356
0171-tests-secontext-add-secontext-field-getters.patch
Normal file
@ -0,0 +1,356 @@
|
|||||||
|
From 4951286eb634c00c11883b851c91f3a21975eabd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||||
|
Date: Tue, 18 Jan 2022 18:03:57 +0100
|
||||||
|
Subject: [PATCH 171/174] tests/secontext: add secontext field getters
|
||||||
|
|
||||||
|
* tests/secontext.h (get_secontext_field, get_secontext_field_file): New
|
||||||
|
declarations.
|
||||||
|
* tests/secontext.c (get_type_from_context): Rename to...
|
||||||
|
(get_secontext_field): ...this; remove "static" qualifier; add "field"
|
||||||
|
argument, use it.
|
||||||
|
(raw_expected_secontext_short_file, raw_secontext_short_pid): Replace
|
||||||
|
get_type_from_context call with get_secontext_field.
|
||||||
|
(get_secontext_field_file): New function.
|
||||||
|
(raw_secontext_short_file): Replace body with get_secontext_field_file
|
||||||
|
call.
|
||||||
|
---
|
||||||
|
tests/secontext.c | 27 +++++++++++++++------------
|
||||||
|
tests/secontext.h | 20 ++++++++++++++++++++
|
||||||
|
2 files changed, 35 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/secontext.c b/tests/secontext.c
|
||||||
|
index 848eea9..52211ed 100644
|
||||||
|
--- a/tests/secontext.c
|
||||||
|
+++ b/tests/secontext.c
|
||||||
|
@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context)
|
||||||
|
return context;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static char *
|
||||||
|
-get_type_from_context(const char *full_context)
|
||||||
|
+char *
|
||||||
|
+get_secontext_field(const char *full_context, enum secontext_field field)
|
||||||
|
{
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
|
@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context)
|
||||||
|
char *context = NULL;
|
||||||
|
for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
|
||||||
|
token; token = strtok_r(NULL, ":", &saveptr), i++) {
|
||||||
|
- if (i == 2) {
|
||||||
|
+ if (i == field) {
|
||||||
|
context = xstrdup(token);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename)
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
|
char *ctx = raw_expected_secontext_full_file(filename);
|
||||||
|
- char *type = get_type_from_context(ctx);
|
||||||
|
+ char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
|
||||||
|
free(ctx);
|
||||||
|
|
||||||
|
errno = saved_errno;
|
||||||
|
@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename)
|
||||||
|
return full_secontext;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static char *
|
||||||
|
-raw_secontext_short_file(const char *filename)
|
||||||
|
+char *
|
||||||
|
+get_secontext_field_file(const char *file, enum secontext_field field)
|
||||||
|
{
|
||||||
|
- int saved_errno = errno;
|
||||||
|
-
|
||||||
|
- char *ctx = raw_secontext_full_file(filename);
|
||||||
|
- char *type = get_type_from_context(ctx);
|
||||||
|
+ char *ctx = raw_secontext_full_file(file);
|
||||||
|
+ char *type = get_secontext_field(ctx, field);
|
||||||
|
free(ctx);
|
||||||
|
|
||||||
|
- errno = saved_errno;
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
+raw_secontext_short_file(const char *filename)
|
||||||
|
+{
|
||||||
|
+ return get_secontext_field_file(filename, SECONTEXT_TYPE);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static char *
|
||||||
|
raw_secontext_full_pid(pid_t pid)
|
||||||
|
{
|
||||||
|
int saved_errno = errno;
|
||||||
|
@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid)
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
|
char *ctx = raw_secontext_full_pid(pid);
|
||||||
|
- char *type = get_type_from_context(ctx);
|
||||||
|
+ char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
|
||||||
|
free(ctx);
|
||||||
|
|
||||||
|
errno = saved_errno;
|
||||||
|
diff --git a/tests/secontext.h b/tests/secontext.h
|
||||||
|
index 1d0251a..e5571d5 100644
|
||||||
|
--- a/tests/secontext.h
|
||||||
|
+++ b/tests/secontext.h
|
||||||
|
@@ -23,6 +23,15 @@ enum secontext_field {
|
||||||
|
|
||||||
|
#if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * Parse a SELinux context string and return a specified field, duplicated
|
||||||
|
+ * in a separate string. The caller is responsible for freeing the memory
|
||||||
|
+ * pointed by the returned value.
|
||||||
|
+ */
|
||||||
|
+char *get_secontext_field(const char *full_context, enum secontext_field field);
|
||||||
|
+
|
||||||
|
+char *get_secontext_field_file(const char *file, enum secontext_field field);
|
||||||
|
+
|
||||||
|
void update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue);
|
||||||
|
|
||||||
|
@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
+static inline char *
|
||||||
|
+get_secontext_field(const char *ctx, enum secontext_field field)
|
||||||
|
+{
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+static inline char *
|
||||||
|
+get_secontext_field_file(const char *file, enum secontext_field field)
|
||||||
|
+{
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static inline void
|
||||||
|
update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue)
|
||||||
|
diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c
|
||||||
|
index 848eea9..52211ed 100644
|
||||||
|
--- a/tests-m32/secontext.c
|
||||||
|
+++ b/tests-m32/secontext.c
|
||||||
|
@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context)
|
||||||
|
return context;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static char *
|
||||||
|
-get_type_from_context(const char *full_context)
|
||||||
|
+char *
|
||||||
|
+get_secontext_field(const char *full_context, enum secontext_field field)
|
||||||
|
{
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
|
@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context)
|
||||||
|
char *context = NULL;
|
||||||
|
for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
|
||||||
|
token; token = strtok_r(NULL, ":", &saveptr), i++) {
|
||||||
|
- if (i == 2) {
|
||||||
|
+ if (i == field) {
|
||||||
|
context = xstrdup(token);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename)
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
|
char *ctx = raw_expected_secontext_full_file(filename);
|
||||||
|
- char *type = get_type_from_context(ctx);
|
||||||
|
+ char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
|
||||||
|
free(ctx);
|
||||||
|
|
||||||
|
errno = saved_errno;
|
||||||
|
@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename)
|
||||||
|
return full_secontext;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static char *
|
||||||
|
-raw_secontext_short_file(const char *filename)
|
||||||
|
+char *
|
||||||
|
+get_secontext_field_file(const char *file, enum secontext_field field)
|
||||||
|
{
|
||||||
|
- int saved_errno = errno;
|
||||||
|
-
|
||||||
|
- char *ctx = raw_secontext_full_file(filename);
|
||||||
|
- char *type = get_type_from_context(ctx);
|
||||||
|
+ char *ctx = raw_secontext_full_file(file);
|
||||||
|
+ char *type = get_secontext_field(ctx, field);
|
||||||
|
free(ctx);
|
||||||
|
|
||||||
|
- errno = saved_errno;
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
+raw_secontext_short_file(const char *filename)
|
||||||
|
+{
|
||||||
|
+ return get_secontext_field_file(filename, SECONTEXT_TYPE);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static char *
|
||||||
|
raw_secontext_full_pid(pid_t pid)
|
||||||
|
{
|
||||||
|
int saved_errno = errno;
|
||||||
|
@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid)
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
|
char *ctx = raw_secontext_full_pid(pid);
|
||||||
|
- char *type = get_type_from_context(ctx);
|
||||||
|
+ char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
|
||||||
|
free(ctx);
|
||||||
|
|
||||||
|
errno = saved_errno;
|
||||||
|
diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h
|
||||||
|
index 1d0251a..e5571d5 100644
|
||||||
|
--- a/tests-m32/secontext.h
|
||||||
|
+++ b/tests-m32/secontext.h
|
||||||
|
@@ -23,6 +23,15 @@ enum secontext_field {
|
||||||
|
|
||||||
|
#if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * Parse a SELinux context string and return a specified field, duplicated
|
||||||
|
+ * in a separate string. The caller is responsible for freeing the memory
|
||||||
|
+ * pointed by the returned value.
|
||||||
|
+ */
|
||||||
|
+char *get_secontext_field(const char *full_context, enum secontext_field field);
|
||||||
|
+
|
||||||
|
+char *get_secontext_field_file(const char *file, enum secontext_field field);
|
||||||
|
+
|
||||||
|
void update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue);
|
||||||
|
|
||||||
|
@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
+static inline char *
|
||||||
|
+get_secontext_field(const char *ctx, enum secontext_field field)
|
||||||
|
+{
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+static inline char *
|
||||||
|
+get_secontext_field_file(const char *file, enum secontext_field field)
|
||||||
|
+{
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static inline void
|
||||||
|
update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue)
|
||||||
|
diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c
|
||||||
|
index 848eea9..52211ed 100644
|
||||||
|
--- a/tests-mx32/secontext.c
|
||||||
|
+++ b/tests-mx32/secontext.c
|
||||||
|
@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context)
|
||||||
|
return context;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static char *
|
||||||
|
-get_type_from_context(const char *full_context)
|
||||||
|
+char *
|
||||||
|
+get_secontext_field(const char *full_context, enum secontext_field field)
|
||||||
|
{
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
|
@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context)
|
||||||
|
char *context = NULL;
|
||||||
|
for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
|
||||||
|
token; token = strtok_r(NULL, ":", &saveptr), i++) {
|
||||||
|
- if (i == 2) {
|
||||||
|
+ if (i == field) {
|
||||||
|
context = xstrdup(token);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename)
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
|
char *ctx = raw_expected_secontext_full_file(filename);
|
||||||
|
- char *type = get_type_from_context(ctx);
|
||||||
|
+ char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
|
||||||
|
free(ctx);
|
||||||
|
|
||||||
|
errno = saved_errno;
|
||||||
|
@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename)
|
||||||
|
return full_secontext;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static char *
|
||||||
|
-raw_secontext_short_file(const char *filename)
|
||||||
|
+char *
|
||||||
|
+get_secontext_field_file(const char *file, enum secontext_field field)
|
||||||
|
{
|
||||||
|
- int saved_errno = errno;
|
||||||
|
-
|
||||||
|
- char *ctx = raw_secontext_full_file(filename);
|
||||||
|
- char *type = get_type_from_context(ctx);
|
||||||
|
+ char *ctx = raw_secontext_full_file(file);
|
||||||
|
+ char *type = get_secontext_field(ctx, field);
|
||||||
|
free(ctx);
|
||||||
|
|
||||||
|
- errno = saved_errno;
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
+raw_secontext_short_file(const char *filename)
|
||||||
|
+{
|
||||||
|
+ return get_secontext_field_file(filename, SECONTEXT_TYPE);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static char *
|
||||||
|
raw_secontext_full_pid(pid_t pid)
|
||||||
|
{
|
||||||
|
int saved_errno = errno;
|
||||||
|
@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid)
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
|
char *ctx = raw_secontext_full_pid(pid);
|
||||||
|
- char *type = get_type_from_context(ctx);
|
||||||
|
+ char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
|
||||||
|
free(ctx);
|
||||||
|
|
||||||
|
errno = saved_errno;
|
||||||
|
diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h
|
||||||
|
index 1d0251a..e5571d5 100644
|
||||||
|
--- a/tests-mx32/secontext.h
|
||||||
|
+++ b/tests-mx32/secontext.h
|
||||||
|
@@ -23,6 +23,15 @@ enum secontext_field {
|
||||||
|
|
||||||
|
#if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * Parse a SELinux context string and return a specified field, duplicated
|
||||||
|
+ * in a separate string. The caller is responsible for freeing the memory
|
||||||
|
+ * pointed by the returned value.
|
||||||
|
+ */
|
||||||
|
+char *get_secontext_field(const char *full_context, enum secontext_field field);
|
||||||
|
+
|
||||||
|
+char *get_secontext_field_file(const char *file, enum secontext_field field);
|
||||||
|
+
|
||||||
|
void update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue);
|
||||||
|
|
||||||
|
@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
+static inline char *
|
||||||
|
+get_secontext_field(const char *ctx, enum secontext_field field)
|
||||||
|
+{
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+static inline char *
|
||||||
|
+get_secontext_field_file(const char *file, enum secontext_field field)
|
||||||
|
+{
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static inline void
|
||||||
|
update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue)
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
181
0172-tests-linkat-provide-fallback-values-for-secontext-f.patch
Normal file
181
0172-tests-linkat-provide-fallback-values-for-secontext-f.patch
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
From 97e2742a7f1e6e113354911d04505ada3bfb5d70 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||||
|
Date: Tue, 18 Jan 2022 18:04:42 +0100
|
||||||
|
Subject: [PATCH 172/174] tests/linkat: provide fallback values for secontext
|
||||||
|
fields changes
|
||||||
|
|
||||||
|
* tests/linkat.c (mangle_secontext_field): New function.
|
||||||
|
(main): Replace calls to update_secontext_field
|
||||||
|
with mangle_secontext_field calls.
|
||||||
|
---
|
||||||
|
tests/linkat.c | 23 ++++++++++++++++++++---
|
||||||
|
1 file changed, 20 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/linkat.c b/tests/linkat.c
|
||||||
|
index c3e2ee4..decb736 100644
|
||||||
|
--- a/tests/linkat.c
|
||||||
|
+++ b/tests/linkat.c
|
||||||
|
@@ -21,6 +21,20 @@
|
||||||
|
#include "secontext.h"
|
||||||
|
#include "xmalloc.h"
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+mangle_secontext_field(const char *path, enum secontext_field field,
|
||||||
|
+ const char *new_val, const char *fallback_val)
|
||||||
|
+{
|
||||||
|
+ char *orig = get_secontext_field_file(path, field);
|
||||||
|
+ if (!orig)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ update_secontext_field(path, field,
|
||||||
|
+ strcmp(new_val, orig) ? new_val : fallback_val);
|
||||||
|
+
|
||||||
|
+ free(orig);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
@@ -93,7 +107,8 @@ main(void)
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
errno = 0;
|
||||||
|
- update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
|
||||||
|
+ mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u",
|
||||||
|
+ "unconfined_u");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
|
||||||
|
# ifdef PRINT_SECONTEXT_FULL
|
||||||
|
@@ -115,7 +130,8 @@ main(void)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
- update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
|
||||||
|
+ mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t",
|
||||||
|
+ "unconfined_t");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
sample_2_secontext = sample_1_secontext;
|
||||||
|
|
||||||
|
@@ -146,7 +162,8 @@ main(void)
|
||||||
|
char *cwd = get_fd_path(dfd_old);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
- update_secontext_field(".", SECONTEXT_TYPE, "default_t");
|
||||||
|
+ mangle_secontext_field(".", SECONTEXT_TYPE, "default_t",
|
||||||
|
+ "unconfined_t");
|
||||||
|
char *dfd_old_secontext = SECONTEXT_FILE(".");
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c
|
||||||
|
index c3e2ee4..decb736 100644
|
||||||
|
--- a/tests-m32/linkat.c
|
||||||
|
+++ b/tests-m32/linkat.c
|
||||||
|
@@ -21,6 +21,20 @@
|
||||||
|
#include "secontext.h"
|
||||||
|
#include "xmalloc.h"
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+mangle_secontext_field(const char *path, enum secontext_field field,
|
||||||
|
+ const char *new_val, const char *fallback_val)
|
||||||
|
+{
|
||||||
|
+ char *orig = get_secontext_field_file(path, field);
|
||||||
|
+ if (!orig)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ update_secontext_field(path, field,
|
||||||
|
+ strcmp(new_val, orig) ? new_val : fallback_val);
|
||||||
|
+
|
||||||
|
+ free(orig);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
@@ -93,7 +107,8 @@ main(void)
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
errno = 0;
|
||||||
|
- update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
|
||||||
|
+ mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u",
|
||||||
|
+ "unconfined_u");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
|
||||||
|
# ifdef PRINT_SECONTEXT_FULL
|
||||||
|
@@ -115,7 +130,8 @@ main(void)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
- update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
|
||||||
|
+ mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t",
|
||||||
|
+ "unconfined_t");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
sample_2_secontext = sample_1_secontext;
|
||||||
|
|
||||||
|
@@ -146,7 +162,8 @@ main(void)
|
||||||
|
char *cwd = get_fd_path(dfd_old);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
- update_secontext_field(".", SECONTEXT_TYPE, "default_t");
|
||||||
|
+ mangle_secontext_field(".", SECONTEXT_TYPE, "default_t",
|
||||||
|
+ "unconfined_t");
|
||||||
|
char *dfd_old_secontext = SECONTEXT_FILE(".");
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c
|
||||||
|
index c3e2ee4..decb736 100644
|
||||||
|
--- a/tests-mx32/linkat.c
|
||||||
|
+++ b/tests-mx32/linkat.c
|
||||||
|
@@ -21,6 +21,20 @@
|
||||||
|
#include "secontext.h"
|
||||||
|
#include "xmalloc.h"
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+mangle_secontext_field(const char *path, enum secontext_field field,
|
||||||
|
+ const char *new_val, const char *fallback_val)
|
||||||
|
+{
|
||||||
|
+ char *orig = get_secontext_field_file(path, field);
|
||||||
|
+ if (!orig)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ update_secontext_field(path, field,
|
||||||
|
+ strcmp(new_val, orig) ? new_val : fallback_val);
|
||||||
|
+
|
||||||
|
+ free(orig);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
@@ -93,7 +107,8 @@ main(void)
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
errno = 0;
|
||||||
|
- update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
|
||||||
|
+ mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u",
|
||||||
|
+ "unconfined_u");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
|
||||||
|
# ifdef PRINT_SECONTEXT_FULL
|
||||||
|
@@ -115,7 +130,8 @@ main(void)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
- update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
|
||||||
|
+ mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t",
|
||||||
|
+ "unconfined_t");
|
||||||
|
sample_1_secontext = SECONTEXT_FILE(sample_1);
|
||||||
|
sample_2_secontext = sample_1_secontext;
|
||||||
|
|
||||||
|
@@ -146,7 +162,8 @@ main(void)
|
||||||
|
char *cwd = get_fd_path(dfd_old);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
- update_secontext_field(".", SECONTEXT_TYPE, "default_t");
|
||||||
|
+ mangle_secontext_field(".", SECONTEXT_TYPE, "default_t",
|
||||||
|
+ "unconfined_t");
|
||||||
|
char *dfd_old_secontext = SECONTEXT_FILE(".");
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
@ -0,0 +1,63 @@
|
|||||||
|
From 6e8aa3749cb7e11e9a59db996f79f036bf7ef263 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||||
|
Date: Tue, 18 Jan 2022 18:05:19 +0100
|
||||||
|
Subject: [PATCH 173/174] tests/secontext: eliminate separate secontext_format
|
||||||
|
declaration
|
||||||
|
|
||||||
|
* tests/secontext.c (secontext_format): Remove declaration, supply
|
||||||
|
the attributes to the definition.
|
||||||
|
---
|
||||||
|
tests/secontext.c | 5 +----
|
||||||
|
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/secontext.c b/tests/secontext.c
|
||||||
|
index 52211ed..ba271c8 100644
|
||||||
|
--- a/tests/secontext.c
|
||||||
|
+++ b/tests/secontext.c
|
||||||
|
@@ -23,10 +23,7 @@
|
||||||
|
# define TEST_SECONTEXT
|
||||||
|
# include "secontext.h"
|
||||||
|
|
||||||
|
-static char *
|
||||||
|
-secontext_format(char *context, const char *fmt)
|
||||||
|
- ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC;
|
||||||
|
-
|
||||||
|
+ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC
|
||||||
|
static char *
|
||||||
|
secontext_format(char *context, const char *fmt)
|
||||||
|
{
|
||||||
|
diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c
|
||||||
|
index 52211ed..ba271c8 100644
|
||||||
|
--- a/tests-m32/secontext.c
|
||||||
|
+++ b/tests-m32/secontext.c
|
||||||
|
@@ -23,10 +23,7 @@
|
||||||
|
# define TEST_SECONTEXT
|
||||||
|
# include "secontext.h"
|
||||||
|
|
||||||
|
-static char *
|
||||||
|
-secontext_format(char *context, const char *fmt)
|
||||||
|
- ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC;
|
||||||
|
-
|
||||||
|
+ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC
|
||||||
|
static char *
|
||||||
|
secontext_format(char *context, const char *fmt)
|
||||||
|
{
|
||||||
|
diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c
|
||||||
|
index 52211ed..ba271c8 100644
|
||||||
|
--- a/tests-mx32/secontext.c
|
||||||
|
+++ b/tests-mx32/secontext.c
|
||||||
|
@@ -23,10 +23,7 @@
|
||||||
|
# define TEST_SECONTEXT
|
||||||
|
# include "secontext.h"
|
||||||
|
|
||||||
|
-static char *
|
||||||
|
-secontext_format(char *context, const char *fmt)
|
||||||
|
- ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC;
|
||||||
|
-
|
||||||
|
+ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC
|
||||||
|
static char *
|
||||||
|
secontext_format(char *context, const char *fmt)
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
190
0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch
Normal file
190
0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
From 78a81bcfb71ef3d9f6e8b1a32e123fbbc6112a60 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||||
|
Date: Tue, 18 Jan 2022 18:24:34 +0100
|
||||||
|
Subject: [PATCH 174/174] tests/linkat: reset context to the expected one if a
|
||||||
|
mismatch has been detected
|
||||||
|
|
||||||
|
* tests/secontext.h (reset_secontext_file): New declaration.
|
||||||
|
* tests/secontext.c (reset_secontext_file): New function.
|
||||||
|
* tests/linkat.c (main): Check that there is no initial mismatch
|
||||||
|
in the sample_1 context, reset it otherwise.
|
||||||
|
---
|
||||||
|
tests/linkat.c | 3 +++
|
||||||
|
tests/secontext.c | 7 +++++++
|
||||||
|
tests/secontext.h | 7 +++++++
|
||||||
|
3 files changed, 17 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tests/linkat.c b/tests/linkat.c
|
||||||
|
index decb736..781b85a 100644
|
||||||
|
--- a/tests/linkat.c
|
||||||
|
+++ b/tests/linkat.c
|
||||||
|
@@ -103,6 +103,9 @@ main(void)
|
||||||
|
if (close(fd_sample_2))
|
||||||
|
perror_msg_and_fail("close");
|
||||||
|
|
||||||
|
+ if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
|
||||||
|
+ reset_secontext_file(sample_1);
|
||||||
|
+
|
||||||
|
free(sample_1_secontext);
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
diff --git a/tests/secontext.c b/tests/secontext.c
|
||||||
|
index ba271c8..94fadd4 100644
|
||||||
|
--- a/tests/secontext.c
|
||||||
|
+++ b/tests/secontext.c
|
||||||
|
@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid)
|
||||||
|
return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
|
||||||
|
}
|
||||||
|
|
||||||
|
+void reset_secontext_file(const char *file)
|
||||||
|
+{
|
||||||
|
+ char *proper_ctx = raw_expected_secontext_full_file(file);
|
||||||
|
+ (void) setfilecon(file, proper_ctx);
|
||||||
|
+ free(proper_ctx);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void
|
||||||
|
update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue)
|
||||||
|
diff --git a/tests/secontext.h b/tests/secontext.h
|
||||||
|
index e5571d5..387263e 100644
|
||||||
|
--- a/tests/secontext.h
|
||||||
|
+++ b/tests/secontext.h
|
||||||
|
@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
|
||||||
|
|
||||||
|
char *get_secontext_field_file(const char *file, enum secontext_field field);
|
||||||
|
|
||||||
|
+void reset_secontext_file(const char *file);
|
||||||
|
+
|
||||||
|
void update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue);
|
||||||
|
|
||||||
|
@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field)
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
+reset_secontext_file(const char *file)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static inline void
|
||||||
|
update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue)
|
||||||
|
{
|
||||||
|
diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c
|
||||||
|
index decb736..781b85a 100644
|
||||||
|
--- a/tests-m32/linkat.c
|
||||||
|
+++ b/tests-m32/linkat.c
|
||||||
|
@@ -103,6 +103,9 @@ main(void)
|
||||||
|
if (close(fd_sample_2))
|
||||||
|
perror_msg_and_fail("close");
|
||||||
|
|
||||||
|
+ if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
|
||||||
|
+ reset_secontext_file(sample_1);
|
||||||
|
+
|
||||||
|
free(sample_1_secontext);
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c
|
||||||
|
index ba271c8..94fadd4 100644
|
||||||
|
--- a/tests-m32/secontext.c
|
||||||
|
+++ b/tests-m32/secontext.c
|
||||||
|
@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid)
|
||||||
|
return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
|
||||||
|
}
|
||||||
|
|
||||||
|
+void reset_secontext_file(const char *file)
|
||||||
|
+{
|
||||||
|
+ char *proper_ctx = raw_expected_secontext_full_file(file);
|
||||||
|
+ (void) setfilecon(file, proper_ctx);
|
||||||
|
+ free(proper_ctx);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void
|
||||||
|
update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue)
|
||||||
|
diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h
|
||||||
|
index e5571d5..387263e 100644
|
||||||
|
--- a/tests-m32/secontext.h
|
||||||
|
+++ b/tests-m32/secontext.h
|
||||||
|
@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
|
||||||
|
|
||||||
|
char *get_secontext_field_file(const char *file, enum secontext_field field);
|
||||||
|
|
||||||
|
+void reset_secontext_file(const char *file);
|
||||||
|
+
|
||||||
|
void update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue);
|
||||||
|
|
||||||
|
@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field)
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
+reset_secontext_file(const char *file)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static inline void
|
||||||
|
update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue)
|
||||||
|
{
|
||||||
|
diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c
|
||||||
|
index decb736..781b85a 100644
|
||||||
|
--- a/tests-mx32/linkat.c
|
||||||
|
+++ b/tests-mx32/linkat.c
|
||||||
|
@@ -103,6 +103,9 @@ main(void)
|
||||||
|
if (close(fd_sample_2))
|
||||||
|
perror_msg_and_fail("close");
|
||||||
|
|
||||||
|
+ if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
|
||||||
|
+ reset_secontext_file(sample_1);
|
||||||
|
+
|
||||||
|
free(sample_1_secontext);
|
||||||
|
|
||||||
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
||||||
|
diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c
|
||||||
|
index ba271c8..94fadd4 100644
|
||||||
|
--- a/tests-mx32/secontext.c
|
||||||
|
+++ b/tests-mx32/secontext.c
|
||||||
|
@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid)
|
||||||
|
return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
|
||||||
|
}
|
||||||
|
|
||||||
|
+void reset_secontext_file(const char *file)
|
||||||
|
+{
|
||||||
|
+ char *proper_ctx = raw_expected_secontext_full_file(file);
|
||||||
|
+ (void) setfilecon(file, proper_ctx);
|
||||||
|
+ free(proper_ctx);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void
|
||||||
|
update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue)
|
||||||
|
diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h
|
||||||
|
index e5571d5..387263e 100644
|
||||||
|
--- a/tests-mx32/secontext.h
|
||||||
|
+++ b/tests-mx32/secontext.h
|
||||||
|
@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
|
||||||
|
|
||||||
|
char *get_secontext_field_file(const char *file, enum secontext_field field);
|
||||||
|
|
||||||
|
+void reset_secontext_file(const char *file);
|
||||||
|
+
|
||||||
|
void update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue);
|
||||||
|
|
||||||
|
@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field)
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
+reset_secontext_file(const char *file)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static inline void
|
||||||
|
update_secontext_field(const char *file, enum secontext_field field,
|
||||||
|
const char *newvalue)
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
57
2001-limit-qual_fault-scope-on-aarch64.patch
Normal file
57
2001-limit-qual_fault-scope-on-aarch64.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
Index: strace-5.7/tests/qual_fault.test
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.7.orig/tests/qual_fault.test 2020-06-02 10:41:25.870177356 +0200
|
||||||
|
+++ strace-5.7/tests/qual_fault.test 2020-06-02 10:48:33.284302800 +0200
|
||||||
|
@@ -83,19 +83,34 @@
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
-for err in '' ENOSYS 22 einval; do
|
||||||
|
+case "$STRACE_ARCH" in
|
||||||
|
+ aarch64)
|
||||||
|
+ ERRS='EnoSys 22'
|
||||||
|
+ NUMBERS1='2'
|
||||||
|
+ NUMBERS2='3'
|
||||||
|
+ NUMBERS2='5'
|
||||||
|
+ ;;
|
||||||
|
+ *)
|
||||||
|
+ ERRS='ENOSYS 22 einval'
|
||||||
|
+ NUMBERS1='1 2 3 5 7 11'
|
||||||
|
+ NUMBERS2='1 2 3 5 7 11'
|
||||||
|
+ NUMBERS3='1 2 3 5 7 11'
|
||||||
|
+ ;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
+for err in '' $(echo $ERRS); do
|
||||||
|
for fault in writev desc,51; do
|
||||||
|
check_fault_injection \
|
||||||
|
writev $fault "$err" '' '' '' 1 -efault=chdir
|
||||||
|
check_fault_injection \
|
||||||
|
writev $fault "$err" '' '' '' 1 -efault=chdir -efault=none
|
||||||
|
- for F in 1 2 3 5 7 11; do
|
||||||
|
+ for F in $(echo $NUMBERS1); do
|
||||||
|
check_fault_injection \
|
||||||
|
writev $fault "$err" $F '' '' 1
|
||||||
|
check_fault_injection \
|
||||||
|
writev $fault "$err" $F '' + 1
|
||||||
|
|
||||||
|
- for L in 1 2 3 5 7 11; do
|
||||||
|
+ for L in $(echo $NUMBERS2); do
|
||||||
|
[ "$L" -ge "$F" ] ||
|
||||||
|
continue
|
||||||
|
check_fault_injection \
|
||||||
|
@@ -104,12 +119,12 @@
|
||||||
|
writev $fault "$err" $F $L + 1
|
||||||
|
done
|
||||||
|
|
||||||
|
- for S in 1 2 3 5 7 11; do
|
||||||
|
+ for S in $(echo $NUMBERS2); do
|
||||||
|
check_fault_injection \
|
||||||
|
writev $fault "$err" $F '' $S 1
|
||||||
|
check_fault_injection \
|
||||||
|
writev $fault "$err" $F '' $S 4
|
||||||
|
- for L in 1 2 3 5 7 11; do
|
||||||
|
+ for L in $(echo $NUMBERS3); do
|
||||||
|
[ "$L" -ge "$F" ] ||
|
||||||
|
continue
|
||||||
|
check_fault_injection \
|
17
2003-undef-ARRAY_SIZE.patch
Normal file
17
2003-undef-ARRAY_SIZE.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Index: strace-5.12/src/unwind.c
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.12.orig/src/unwind.c 2018-12-10 01:00:00.000000000 +0100
|
||||||
|
+++ strace-5.12/src/unwind.c 2020-06-02 11:13:42.777871147 +0200
|
||||||
|
@@ -9,6 +9,12 @@
|
||||||
|
#include "unwind.h"
|
||||||
|
|
||||||
|
#ifdef USE_DEMANGLE
|
||||||
|
+/*
|
||||||
|
+ * demangle.h defines ARRAY_SIZE without proper guard, and its definition
|
||||||
|
+ * is "good enough" for us.
|
||||||
|
+ */
|
||||||
|
+#undef ARRAY_SIZE
|
||||||
|
+
|
||||||
|
# if defined HAVE_DEMANGLE_H
|
||||||
|
# include <demangle.h>
|
||||||
|
# elif defined HAVE_LIBIBERTY_DEMANGLE_H
|
135
2004-glibc-msgctl-semctl-shmctl-backport-workaround.patch
Normal file
135
2004-glibc-msgctl-semctl-shmctl-backport-workaround.patch
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
Index: strace-5.12/tests/ipc_msg.c
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.12.orig/tests/ipc_msg.c 2021-05-18 13:30:38.440896349 +0200
|
||||||
|
+++ strace-5.12/tests/ipc_msg.c 2021-05-18 13:30:04.628198661 +0200
|
||||||
|
@@ -55,8 +55,9 @@
|
||||||
|
* Starting with commit glibc-2.32.9000-149-gbe9b0b9a012780a403a2,
|
||||||
|
* glibc skips msgctl syscall invocations and returns EINVAL
|
||||||
|
* for invalid msgctl commands.
|
||||||
|
+ * It has been backported into glic-2.28-153 in RHEL 8.5.
|
||||||
|
*/
|
||||||
|
-#if GLIBC_PREREQ_GE(2, 32)
|
||||||
|
+#if GLIBC_PREREQ_GE(2, 28)
|
||||||
|
# define TEST_MSGCTL_BOGUS_CMD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Index: strace-5.12/tests/ipc_shm.c
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.12.orig/tests/ipc_shm.c 2021-05-18 13:30:22.373040008 +0200
|
||||||
|
+++ strace-5.12/tests/ipc_shm.c 2021-05-18 13:30:00.835232573 +0200
|
||||||
|
@@ -45,8 +45,9 @@
|
||||||
|
* Starting with commit glibc-2.32.9000-207-g9ebaabeaac1a96b0d91f,
|
||||||
|
* glibc skips shmctl syscall invocations and returns EINVAL
|
||||||
|
* for invalid shmctl commands.
|
||||||
|
+ * It has been backported into glic-2.28-153 in RHEL 8.5.
|
||||||
|
*/
|
||||||
|
-#if GLIBC_PREREQ_GE(2, 32)
|
||||||
|
+#if GLIBC_PREREQ_GE(2, 28)
|
||||||
|
# define TEST_SHMCTL_BOGUS_CMD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Index: strace-5.12/tests/ipc_sem.c
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.12.orig/tests/ipc_sem.c 2020-12-31 09:00:00.000000000 +0100
|
||||||
|
+++ strace-5.12/tests/ipc_sem.c 2021-05-18 13:56:51.453832392 +0200
|
||||||
|
@@ -27,8 +27,9 @@
|
||||||
|
* Starting with commit glibc-2.32.9000-147-ga16d2abd496bd974a882,
|
||||||
|
* glibc skips semctl syscall invocations and returns EINVAL
|
||||||
|
* for invalid semctl commands.
|
||||||
|
+ * It has been backported into glic-2.28-153 in RHEL 8.5.
|
||||||
|
*/
|
||||||
|
-#if GLIBC_PREREQ_GE(2, 32)
|
||||||
|
+#if GLIBC_PREREQ_GE(2, 28)
|
||||||
|
# define TEST_SEMCTL_BOGUS_CMD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Index: strace-5.12/tests-m32/ipc_msg.c
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.12.orig/tests-m32/ipc_msg.c 2021-05-18 13:30:38.440896349 +0200
|
||||||
|
+++ strace-5.12/tests-m32/ipc_msg.c 2021-05-18 13:30:04.628198661 +0200
|
||||||
|
@@ -55,8 +55,9 @@
|
||||||
|
* Starting with commit glibc-2.32.9000-149-gbe9b0b9a012780a403a2,
|
||||||
|
* glibc skips msgctl syscall invocations and returns EINVAL
|
||||||
|
* for invalid msgctl commands.
|
||||||
|
+ * It has been backported into glic-2.28-153 in RHEL 8.5.
|
||||||
|
*/
|
||||||
|
-#if GLIBC_PREREQ_GE(2, 32)
|
||||||
|
+#if GLIBC_PREREQ_GE(2, 28)
|
||||||
|
# define TEST_MSGCTL_BOGUS_CMD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Index: strace-5.12/tests-m32/ipc_shm.c
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.12.orig/tests-m32/ipc_shm.c 2021-05-18 13:30:22.373040008 +0200
|
||||||
|
+++ strace-5.12/tests-m32/ipc_shm.c 2021-05-18 13:30:00.835232573 +0200
|
||||||
|
@@ -45,8 +45,9 @@
|
||||||
|
* Starting with commit glibc-2.32.9000-207-g9ebaabeaac1a96b0d91f,
|
||||||
|
* glibc skips shmctl syscall invocations and returns EINVAL
|
||||||
|
* for invalid shmctl commands.
|
||||||
|
+ * It has been backported into glic-2.28-153 in RHEL 8.5.
|
||||||
|
*/
|
||||||
|
-#if GLIBC_PREREQ_GE(2, 32)
|
||||||
|
+#if GLIBC_PREREQ_GE(2, 28)
|
||||||
|
# define TEST_SHMCTL_BOGUS_CMD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Index: strace-5.12/tests-m32/ipc_sem.c
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.12.orig/tests-m32/ipc_sem.c 2020-12-31 09:00:00.000000000 +0100
|
||||||
|
+++ strace-5.12/tests-m32/ipc_sem.c 2021-05-18 13:56:51.453832392 +0200
|
||||||
|
@@ -27,8 +27,9 @@
|
||||||
|
* Starting with commit glibc-2.32.9000-147-ga16d2abd496bd974a882,
|
||||||
|
* glibc skips semctl syscall invocations and returns EINVAL
|
||||||
|
* for invalid semctl commands.
|
||||||
|
+ * It has been backported into glic-2.28-153 in RHEL 8.5.
|
||||||
|
*/
|
||||||
|
-#if GLIBC_PREREQ_GE(2, 32)
|
||||||
|
+#if GLIBC_PREREQ_GE(2, 28)
|
||||||
|
# define TEST_SEMCTL_BOGUS_CMD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Index: strace-5.12/tests-mx32/ipc_msg.c
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.12.orig/tests-mx32/ipc_msg.c 2021-05-18 13:30:38.440896349 +0200
|
||||||
|
+++ strace-5.12/tests-mx32/ipc_msg.c 2021-05-18 13:30:04.628198661 +0200
|
||||||
|
@@ -55,8 +55,9 @@
|
||||||
|
* Starting with commit glibc-2.32.9000-149-gbe9b0b9a012780a403a2,
|
||||||
|
* glibc skips msgctl syscall invocations and returns EINVAL
|
||||||
|
* for invalid msgctl commands.
|
||||||
|
+ * It has been backported into glic-2.28-153 in RHEL 8.5.
|
||||||
|
*/
|
||||||
|
-#if GLIBC_PREREQ_GE(2, 32)
|
||||||
|
+#if GLIBC_PREREQ_GE(2, 28)
|
||||||
|
# define TEST_MSGCTL_BOGUS_CMD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Index: strace-5.12/tests-mx32/ipc_shm.c
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.12.orig/tests-mx32/ipc_shm.c 2021-05-18 13:30:22.373040008 +0200
|
||||||
|
+++ strace-5.12/tests-mx32/ipc_shm.c 2021-05-18 13:30:00.835232573 +0200
|
||||||
|
@@ -45,8 +45,9 @@
|
||||||
|
* Starting with commit glibc-2.32.9000-207-g9ebaabeaac1a96b0d91f,
|
||||||
|
* glibc skips shmctl syscall invocations and returns EINVAL
|
||||||
|
* for invalid shmctl commands.
|
||||||
|
+ * It has been backported into glic-2.28-153 in RHEL 8.5.
|
||||||
|
*/
|
||||||
|
-#if GLIBC_PREREQ_GE(2, 32)
|
||||||
|
+#if GLIBC_PREREQ_GE(2, 28)
|
||||||
|
# define TEST_SHMCTL_BOGUS_CMD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Index: strace-5.12/tests-mx32/ipc_sem.c
|
||||||
|
===================================================================
|
||||||
|
--- strace-5.12.orig/tests-mx32/ipc_sem.c 2020-12-31 09:00:00.000000000 +0100
|
||||||
|
+++ strace-5.12/tests-mx32/ipc_sem.c 2021-05-18 13:56:51.453832392 +0200
|
||||||
|
@@ -27,8 +27,9 @@
|
||||||
|
* Starting with commit glibc-2.32.9000-147-ga16d2abd496bd974a882,
|
||||||
|
* glibc skips semctl syscall invocations and returns EINVAL
|
||||||
|
* for invalid semctl commands.
|
||||||
|
+ * It has been backported into glic-2.28-153 in RHEL 8.5.
|
||||||
|
*/
|
||||||
|
-#if GLIBC_PREREQ_GE(2, 32)
|
||||||
|
+#if GLIBC_PREREQ_GE(2, 28)
|
||||||
|
# define TEST_SEMCTL_BOGUS_CMD 0
|
||||||
|
#endif
|
||||||
|
|
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
|||||||
|
SHA512 (strace-5.13.tar.xz) = ba8b0eae396fa2b762bf17cbcdcd84b0660b2a5d5e7e9caf098ef3414a87fd28d4140dd10136483f35904560e5044e40be2bf6117462868a360306d62887c8ed
|
734
strace.spec
Normal file
734
strace.spec
Normal file
@ -0,0 +1,734 @@
|
|||||||
|
%define __python /opt/rh/gcc-toolset-9/root/usr/bin/python3
|
||||||
|
%{?scl:%{?scl_package:%scl_package strace}}
|
||||||
|
|
||||||
|
Summary: Tracks and displays system calls associated with a running process
|
||||||
|
Name: %{?scl_prefix}strace
|
||||||
|
Version: 5.13
|
||||||
|
Release: 7%{?dist}
|
||||||
|
# The test suite is GPLv2+, all the rest is LGPLv2.1+.
|
||||||
|
License: LGPL-2.1+ and GPL-2.0+
|
||||||
|
Group: Development/Debuggers
|
||||||
|
URL: https://strace.io
|
||||||
|
Source: https://strace.io/files/%{version}/strace-%{version}.tar.xz
|
||||||
|
|
||||||
|
%define alternatives_cmd %{!?scl:%{_sbindir}}%{?scl:%{_root_sbindir}}/alternatives
|
||||||
|
%define alternatives_cmdline %{alternatives_cmd}%{?scl: --altdir %{_sysconfdir}/alternatives --admindir %{_scl_root}/var/lib/alternatives}
|
||||||
|
|
||||||
|
BuildRequires: libacl-devel, time
|
||||||
|
%{?scl:Requires:%scl_runtime}
|
||||||
|
|
||||||
|
BuildRequires: gcc gzip make
|
||||||
|
|
||||||
|
# Install Bluetooth headers for AF_BLUETOOTH sockets decoding.
|
||||||
|
%if 0%{?fedora} >= 18 || 0%{?centos} >= 8 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1200
|
||||||
|
BuildRequires: pkgconfig(bluez)
|
||||||
|
%endif
|
||||||
|
|
||||||
|
BuildRequires: %{?scl_prefix}elfutils-devel, %{?scl_prefix}binutils-devel
|
||||||
|
BuildRequires: libselinux-devel
|
||||||
|
%{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release}
|
||||||
|
|
||||||
|
# OBS compatibility
|
||||||
|
%{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release}
|
||||||
|
%define maybe_use_defattr %{?suse_version:%%defattr(-,root,root)}
|
||||||
|
|
||||||
|
# v5.13-55-g6b2191f "filter_qualify: free allocated data on the error path exit of parse_poke_token"
|
||||||
|
Patch150: 0150-filter_qualify-free-allocated-data-on-the-error-path.patch
|
||||||
|
# v5.13-56-g80dc60c "macros: expand BIT macros, add MASK macros; add *_SAFE macros"
|
||||||
|
Patch151: 0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch
|
||||||
|
# v5.13-58-g94ae5c2 "trie: use BIT* and MASK* macros"
|
||||||
|
Patch152: 0152-trie-use-BIT-and-MASK-macros.patch
|
||||||
|
# v5.13-65-g41b753e "tee: rewrite num_params access in tee_fetch_buf_data"
|
||||||
|
Patch153: 0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch
|
||||||
|
|
||||||
|
# v5.15~1 "print_ifindex: fix IFNAME_QUOTED_SZ definition"
|
||||||
|
Patch167: 0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch
|
||||||
|
|
||||||
|
# v5.15~18 "m4: fix st_SELINUX check"
|
||||||
|
Patch168: 0168-m4-fix-st_SELINUX-check.patch
|
||||||
|
# v5.16~31 "Implement displaying of expected context upon mismatch"
|
||||||
|
Patch169: 0169-Implement-displaying-of-expected-context-upon-mismat.patch
|
||||||
|
Patch170: 0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch
|
||||||
|
Patch171: 0171-tests-secontext-add-secontext-field-getters.patch
|
||||||
|
Patch172: 0172-tests-linkat-provide-fallback-values-for-secontext-f.patch
|
||||||
|
Patch173: 0173-tests-secontext-eliminate-separate-secontext_format-.patch
|
||||||
|
Patch174: 0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch
|
||||||
|
|
||||||
|
## RHEL-only: aarch64 brew builders are extremely slow on qual_fault.test
|
||||||
|
Patch2001: 2001-limit-qual_fault-scope-on-aarch64.patch
|
||||||
|
## RHEL-only: avoid ARRAY_SIZE macro re-definition in libiberty.h
|
||||||
|
Patch2003: 2003-undef-ARRAY_SIZE.patch
|
||||||
|
## RHEL-only: glibc-2.32.9000-147-ga16d2abd496bd974a882,
|
||||||
|
## glibc-2.32.9000-149-gbe9b0b9a012780a403a2 and
|
||||||
|
## glibc-2.32.9000-207-g9ebaabeaac1a96b0d91f have been backported in RHEL.
|
||||||
|
Patch2004: 2004-glibc-msgctl-semctl-shmctl-backport-workaround.patch
|
||||||
|
|
||||||
|
# Fallback definitions for make_build/make_install macros
|
||||||
|
%{?!__make: %global __make %_bindir/make}
|
||||||
|
%{?!__install: %global __install %_bindir/install}
|
||||||
|
%{?!make_build: %global make_build %__make %{?_smp_mflags}}
|
||||||
|
%{?!make_install: %global make_install %__make install DESTDIR="%{?buildroot}" INSTALL="%__install -p"}
|
||||||
|
|
||||||
|
%description
|
||||||
|
The strace program intercepts and records the system calls called and
|
||||||
|
received by a running process. Strace can print a record of each
|
||||||
|
system call, its arguments and its return value. Strace is useful for
|
||||||
|
diagnosing problems and debugging, as well as for instructional
|
||||||
|
purposes.
|
||||||
|
|
||||||
|
Install strace if you need a tool to track the system calls made and
|
||||||
|
received by a process.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n strace-%{version}
|
||||||
|
|
||||||
|
%patch150 -p1
|
||||||
|
%patch151 -p1
|
||||||
|
%patch152 -p1
|
||||||
|
%patch153 -p1
|
||||||
|
|
||||||
|
%patch167 -p1
|
||||||
|
|
||||||
|
%patch168 -p1
|
||||||
|
%patch169 -p1
|
||||||
|
%patch170 -p1
|
||||||
|
%patch171 -p1
|
||||||
|
%patch172 -p1
|
||||||
|
%patch173 -p1
|
||||||
|
%patch174 -p1
|
||||||
|
|
||||||
|
%patch2001 -p1
|
||||||
|
%patch2003 -p1
|
||||||
|
%patch2004 -p1
|
||||||
|
|
||||||
|
chmod a+x tests/*.test
|
||||||
|
|
||||||
|
echo -n %version-%release > .tarball-version
|
||||||
|
echo -n 2020 > .year
|
||||||
|
echo -n 2021-05-14 > doc/.strace.1.in.date
|
||||||
|
|
||||||
|
%build
|
||||||
|
echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION'
|
||||||
|
uname -a |head -1
|
||||||
|
libc="$(ldd /bin/sh |sed -n 's|^[^/]*\(/[^ ]*/libc\.so[^ ]*\).*|\1|p' |head -1)"
|
||||||
|
$libc |head -1
|
||||||
|
file -L /bin/sh
|
||||||
|
gcc --version |head -1
|
||||||
|
ld --version |head -1
|
||||||
|
kver="$(printf '%%s\n%%s\n' '#include <linux/version.h>' 'LINUX_VERSION_CODE' | gcc -E -P -)"
|
||||||
|
printf 'kernel-headers %%s.%%s.%%s\n' $(($kver/65536)) $(($kver/256%%256)) $(($kver%%256))
|
||||||
|
echo 'END OF BUILD ENVIRONMENT INFORMATION'
|
||||||
|
|
||||||
|
LDFLAGS="$RPM_LD_FLAGS -L%{_libdir} -L%{_libdir}/elfutils"
|
||||||
|
export LDLFAGS
|
||||||
|
|
||||||
|
# -DHAVE_S390_COMPAT_REGS is needed due to lack of v3.10-rc1~201^2~11
|
||||||
|
CFLAGS="$RPM_OPT_FLAGS $LDFLAGS"
|
||||||
|
# Removing explicit -m64 as it breaks mpers
|
||||||
|
[ "x${CFLAGS#*-m64}" = "x${CFLAGS}" ] || CFLAGS=$(echo "$CFLAGS" | sed 's/-m64//g')
|
||||||
|
export CFLAGS
|
||||||
|
|
||||||
|
CPPFLAGS="-isystem %{_includedir} %{optflags}"
|
||||||
|
# Removing explicit -m64 as it breaks mpers
|
||||||
|
[ "x${CPPFLAGS#*-m64}" = "x${CPPFLAGS}" ] || CPPFLAGS=$(echo "$CPPFLAGS" | sed 's/-m64//g')
|
||||||
|
export CPPFLAGS
|
||||||
|
|
||||||
|
CFLAGS_FOR_BUILD="$RPM_OPT_FLAGS"; export CFLAGS_FOR_BUILD
|
||||||
|
%configure --enable-mpers=check --with-libdw
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
|
||||||
|
# some say uncompressed changelog files are too big
|
||||||
|
for f in ChangeLog ChangeLog-CVS; do
|
||||||
|
gzip -9n < "$f" > "$f".gz &
|
||||||
|
done
|
||||||
|
wait
|
||||||
|
|
||||||
|
%check
|
||||||
|
%{buildroot}%{_bindir}/strace -V
|
||||||
|
|
||||||
|
%make_build -j2 -k check VERBOSE=1 TIMEOUT_DURATION=5400
|
||||||
|
echo 'BEGIN OF TEST SUITE INFORMATION'
|
||||||
|
tail -n 99999 -- tests*/test-suite.log tests*/ksysent.gen.log
|
||||||
|
find tests* -type f -name '*.log' -print0 |
|
||||||
|
xargs -r0 grep -H '^KERNEL BUG:' -- ||:
|
||||||
|
echo 'END OF TEST SUITE INFORMATION'
|
||||||
|
|
||||||
|
%files
|
||||||
|
%maybe_use_defattr
|
||||||
|
%doc CREDITS ChangeLog.gz ChangeLog-CVS.gz COPYING LGPL-2.1-or-later NEWS README
|
||||||
|
%{_bindir}/strace
|
||||||
|
%{_bindir}/strace-log-merge
|
||||||
|
%{_mandir}/man1/*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Mon Feb 07 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-7
|
||||||
|
- Update tests-m32 and tests-mx32 with --secontext=mismatch option support
|
||||||
|
changes (#2046265).
|
||||||
|
|
||||||
|
* Wed Jan 19 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-6
|
||||||
|
- Add --secontext=mismatch option support (#2038992).
|
||||||
|
|
||||||
|
* Wed Jan 05 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-5
|
||||||
|
- Fix incorrect ifname printing buffer size (#2028163).
|
||||||
|
|
||||||
|
* Tue Aug 24 2021 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-4
|
||||||
|
- Work around unknown msgctl/semctl/shmctl cmd check issue in tests-m32
|
||||||
|
and tests-mx32 as well (#1997082).
|
||||||
|
|
||||||
|
* Mon Aug 23 2021 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-3
|
||||||
|
- Address some issues reported by covscan (#1995509).
|
||||||
|
|
||||||
|
* Tue Jul 20 2021 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-1
|
||||||
|
- Rebase to v5.13.
|
||||||
|
|
||||||
|
* Fri May 14 2021 Eugene Syromiatnikov <esyr@redhat.com> - 5.12-1
|
||||||
|
- Rebase to v5.12; drop upstream patches on top of 5.7 (#1958326).
|
||||||
|
|
||||||
|
* Mon Nov 09 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.7-2
|
||||||
|
- Add PID namespace translation support (#1790836).
|
||||||
|
|
||||||
|
* Tue Jun 02 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.7-1
|
||||||
|
- Rebase to v5.7; drop upstream patches on top of 5.1 (#1817210).
|
||||||
|
|
||||||
|
* Mon Jan 27 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.1-6
|
||||||
|
- Fix expected alignment for IPC tests (#1794490):
|
||||||
|
4377e3a1 "tests: fix expected output for some ipc tests", and
|
||||||
|
a75c7c4b "tests: fix -a argument in ipc_msgbuf-Xraw test".
|
||||||
|
|
||||||
|
* Thu Jan 23 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.1-5
|
||||||
|
- Fix printing stack traces for early syscalls on process attach (#1790054):
|
||||||
|
69b2c33a "unwind-libdw: fix initialization of libdwfl cache",
|
||||||
|
35e080ae "syscall: do not capture stack trace while the tracee executes
|
||||||
|
strace code", and
|
||||||
|
8e515c74 "tests: add strace-k-p test".
|
||||||
|
- Properly decode struct sockaddr_hci without hci_channel field.
|
||||||
|
|
||||||
|
* Fri Jan 03 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.1-4
|
||||||
|
- Pull upstream fix for ioctl evdev bitset decoding, fix the tests (#1747213).
|
||||||
|
- Include upstream patches that fix issues reported by covscan (#1747530):
|
||||||
|
91281fec "v4l2: avoid shifting left a signed number by 31 bit",
|
||||||
|
522ad3a0 "syscall.c: avoid infinite loop in subcalls parsing",
|
||||||
|
9446038e "kvm: avoid bogus vcpu_info assignment in vcpu_register", and
|
||||||
|
2b64854e "xlat: use unsgined type for mount_flags fallback values".
|
||||||
|
|
||||||
|
* Fri Jun 14 2019 Eugene Syromiatnikov <esyr@redhat.com> - 5.1-3
|
||||||
|
- Use SPDX abbreviations for licenses.
|
||||||
|
- Add library directories to existing LDFLAGS and not override them.
|
||||||
|
|
||||||
|
* Thu Jun 13 2019 Eugene Syromiatnikov <esyr@redhat.com> - 5.1-2
|
||||||
|
- Add SCL macros (#1685491).
|
||||||
|
|
||||||
|
* Wed May 22 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.1-1
|
||||||
|
- v5.0 -> v5.1.
|
||||||
|
|
||||||
|
* Tue Mar 19 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.0-1
|
||||||
|
- v4.26 -> v5.0 (resolves: #478419, #526740, #851457, #1609318,
|
||||||
|
#1610774, #1662936, #1676045).
|
||||||
|
|
||||||
|
* Wed Dec 26 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.26-1
|
||||||
|
- v4.25 -> v4.26.
|
||||||
|
|
||||||
|
* Tue Oct 30 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.25-1
|
||||||
|
- v4.24 -> v4.25.
|
||||||
|
|
||||||
|
* Tue Aug 14 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.24-1
|
||||||
|
- v4.23 -> v4.24.
|
||||||
|
|
||||||
|
* Thu Jun 14 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.23-1
|
||||||
|
- v4.22 -> v4.23.
|
||||||
|
- Enabled libdw backend for -k option (#1568647).
|
||||||
|
|
||||||
|
* Thu Apr 05 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.22-1
|
||||||
|
- v4.21 -> v4.22.
|
||||||
|
|
||||||
|
* Tue Feb 13 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.21-1
|
||||||
|
- v4.20 -> v4.21.
|
||||||
|
|
||||||
|
* Mon Nov 13 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.20-1
|
||||||
|
- v4.19 -> v4.20.
|
||||||
|
|
||||||
|
* Tue Sep 05 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.19-1
|
||||||
|
- v4.18 -> v4.19.
|
||||||
|
|
||||||
|
* Wed Jul 05 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.18-1
|
||||||
|
- v4.17 -> v4.18.
|
||||||
|
|
||||||
|
* Wed May 24 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.17-1
|
||||||
|
- v4.16 -> v4.17.
|
||||||
|
|
||||||
|
* Tue Feb 14 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.16-1
|
||||||
|
- v4.15 -> v4.16.
|
||||||
|
|
||||||
|
* Wed Dec 14 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.15-1
|
||||||
|
- v4.14-100-g622af42 -> v4.15.
|
||||||
|
|
||||||
|
* Wed Nov 16 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.14.0.100.622a-1
|
||||||
|
- v4.14 -> v4.14-100-g622af42:
|
||||||
|
+ implemented syscall fault injection.
|
||||||
|
|
||||||
|
* Tue Oct 04 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.14-1
|
||||||
|
- v4.13 -> v4.14:
|
||||||
|
+ added printing of the mode argument of open and openat syscalls
|
||||||
|
when O_TMPFILE flag is set (#1377846).
|
||||||
|
|
||||||
|
* Tue Jul 26 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.13-1
|
||||||
|
- v4.12 -> v4.13.
|
||||||
|
|
||||||
|
* Tue May 31 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.12-1
|
||||||
|
- v4.11-163-g972018f -> v4.12.
|
||||||
|
|
||||||
|
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.11.0.163.9720-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jan 15 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.11.0.163.9720-1
|
||||||
|
- New upstream snapshot v4.11-163-g972018f:
|
||||||
|
+ fixed decoding of syscalls unknown to the kernel on s390/s390x (#1298294).
|
||||||
|
|
||||||
|
* Wed Dec 23 2015 Dmitry V. Levin <ldv@altlinux.org> - 4.11-2
|
||||||
|
- Enabled experimental -k option on x86_64 (#1170296).
|
||||||
|
|
||||||
|
* Mon Dec 21 2015 Dmitry V. Levin <ldv@altlinux.org> - 4.11-1
|
||||||
|
- New upstream release:
|
||||||
|
+ print nanoseconds along with seconds in stat family syscalls (#1251176).
|
||||||
|
|
||||||
|
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.10-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon May 11 2015 Marcin Juszkiewicz <mjuszkiewicz@redhat.com> - 4.10-2
|
||||||
|
- Backport set of upstream patches to get it buildable on AArch64
|
||||||
|
|
||||||
|
* Fri Mar 06 2015 Dmitry V. Levin <ldv@altlinux.org> - 4.10-1
|
||||||
|
- New upstream release:
|
||||||
|
+ enhanced ioctl decoding (#902788).
|
||||||
|
|
||||||
|
* Mon Nov 03 2014 Lubomir Rintel <lkundrak@v3.sk> - 4.9-3
|
||||||
|
- Regenerate ioctl entries with proper kernel headers
|
||||||
|
|
||||||
|
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.9-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Aug 15 2014 Dmitry V. Levin <ldv@altlinux.org> - 4.9-1
|
||||||
|
- New upstream release:
|
||||||
|
+ fixed build when <sys/ptrace.h> and <linux/ptrace.h> conflict (#993384);
|
||||||
|
+ updated CLOCK_* constants (#1088455);
|
||||||
|
+ enabled ppc64le support (#1122323);
|
||||||
|
+ fixed attach to a process on ppc64le (#1129569).
|
||||||
|
|
||||||
|
* Fri Jul 25 2014 Dan Horák <dan[at]danny.cz> - 4.8-5
|
||||||
|
- update for ppc64
|
||||||
|
|
||||||
|
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.8-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Dec 6 2013 Peter Robinson <pbrobinson@fedoraproject.org> 4.8-3
|
||||||
|
- Fix FTBFS
|
||||||
|
|
||||||
|
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.8-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jun 03 2013 Dmitry V. Levin <ldv@altlinux.org> - 4.8-1
|
||||||
|
- New upstream release:
|
||||||
|
+ fixed ERESTARTNOINTR leaking to userspace on ancient kernels (#659382);
|
||||||
|
+ fixed decoding of *xattr syscalls (#885233);
|
||||||
|
+ fixed handling of files with 64-bit inode numbers by 32-bit strace (#912790);
|
||||||
|
+ added aarch64 support (#969858).
|
||||||
|
|
||||||
|
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed May 02 2012 Dmitry V. Levin <ldv@altlinux.org> 4.7-1
|
||||||
|
- New upstream release.
|
||||||
|
+ implemented proper handling of real SIGTRAPs (#162774).
|
||||||
|
|
||||||
|
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.6-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Mar 14 2011 Dmitry V. Levin <ldv@altlinux.org> - 4.6-1
|
||||||
|
- New upstream release.
|
||||||
|
+ fixed a corner case in waitpid handling (#663547).
|
||||||
|
|
||||||
|
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.5.20-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Apr 13 2010 Roland McGrath <roland@redhat.com> - 4.5.20-1
|
||||||
|
- New upstream release, work mostly by Andreas Schwab and Dmitry V. Levin.
|
||||||
|
+ fixed potential stack buffer overflow in select decoder (#556678);
|
||||||
|
+ fixed FTBFS (#539044).
|
||||||
|
|
||||||
|
* Wed Oct 21 2009 Roland McGrath <roland@redhat.com> - 4.5.19-1
|
||||||
|
- New upstream release, work mostly by Dmitry V. Levin <ldv@altlinux.org>
|
||||||
|
+ exit/kill strace with traced process exitcode/signal (#105371);
|
||||||
|
+ fixed build on ARM EABI (#507576);
|
||||||
|
+ fixed display of 32-bit argv array on 64-bit architectures (#519480);
|
||||||
|
+ fixed display of 32-bit fcntl(F_SETLK) on 64-bit architectures (#471169);
|
||||||
|
+ fixed several bugs in strings decoder, including potential heap
|
||||||
|
memory corruption (#470529, #478324, #511035).
|
||||||
|
|
||||||
|
* Thu Aug 28 2008 Roland McGrath <roland@redhat.com> - 4.5.18-1
|
||||||
|
- build fix for newer kernel headers (#457291)
|
||||||
|
- fix CLONE_VFORK handling (#455078)
|
||||||
|
- Support new Linux/PPC system call subpage_prot and PROT_SAO flag.
|
||||||
|
- In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN.
|
||||||
|
|
||||||
|
* Mon Jul 21 2008 Roland McGrath <roland@redhat.com> - 4.5.17-1
|
||||||
|
- handle O_CLOEXEC, MSG_CMSG_CLOEXEC (#365781)
|
||||||
|
- fix biarch stat64 decoding (#222275)
|
||||||
|
- fix spurious "..." in printing of environment strings (#358241)
|
||||||
|
- improve prctl decoding (#364401)
|
||||||
|
- fix hang wait on exited child with exited child (#354261)
|
||||||
|
- fix biarch fork/vfork (-f) tracing (#447475)
|
||||||
|
- fix biarch printing of negative argument kill (#430585)
|
||||||
|
- fix biarch decoding of error return values (#447587)
|
||||||
|
- fix -f tracing of CLONE_VFORK (#455078)
|
||||||
|
- fix ia64 register clobberation in -f tracing (#453438)
|
||||||
|
- print SO_NODEFER, SA_RESETHAND instead of SA_NOMASK, SA_ONESHOT (#455821)
|
||||||
|
- fix futex argument decoding (#448628, #448629)
|
||||||
|
|
||||||
|
* Fri Aug 3 2007 Roland McGrath <roland@redhat.com> - 4.5.16-1
|
||||||
|
- fix multithread issues (#240962, #240961, #247907)
|
||||||
|
- fix spurious SIGSTOP on early interrupt (#240986)
|
||||||
|
- fix utime for biarch (#247185)
|
||||||
|
- fix -u error message (#247170)
|
||||||
|
- better futex syscall printing (##241467)
|
||||||
|
- fix argv/envp printing with small -s settings, and for biarch
|
||||||
|
- new syscalls: getcpu, eventfd, timerfd, signalfd, epoll_pwait,
|
||||||
|
move_pages, utimensat
|
||||||
|
|
||||||
|
* Tue Jan 16 2007 Roland McGrath <roland@redhat.com> - 4.5.15-1
|
||||||
|
- biarch fixes (#179740, #192193, #171626, #173050, #218433, #218043)
|
||||||
|
- fix -ff -o behavior (#204950, #218435, #193808, #219423)
|
||||||
|
- better quotactl printing (#118696)
|
||||||
|
- *at, inotify*, pselect6, ppoll and unshare syscalls (#178633, #191275)
|
||||||
|
- glibc-2.5 build fixes (#209856)
|
||||||
|
- memory corruption fixes (#200621
|
||||||
|
- fix race in child setup under -f (#180293)
|
||||||
|
- show ipc key values in hex (#198179, #192182)
|
||||||
|
- disallow -c with -ff (#187847)
|
||||||
|
- Resolves: RHBZ #179740, RHBZ #192193, RHBZ #204950, RHBZ #218435
|
||||||
|
- Resolves: RHBZ #193808, RHBZ #219423, RHBZ #171626, RHBZ #173050
|
||||||
|
- Resolves: RHBZ #218433, RHBZ #218043, RHBZ #118696, RHBZ #178633
|
||||||
|
- Resolves: RHBZ #191275, RHBZ #209856, RHBZ #200621, RHBZ #180293
|
||||||
|
- Resolves: RHBZ #198179, RHBZ #198182, RHBZ #187847
|
||||||
|
|
||||||
|
* Mon Nov 20 2006 Jakub Jelinek <jakub@redhat.com> - 4.5.14-4
|
||||||
|
- Fix ia64 syscall decoding (#206768)
|
||||||
|
- Fix build with glibc-2.4.90-33 and up on all arches but ia64
|
||||||
|
- Fix build against 2.6.18+ headers
|
||||||
|
|
||||||
|
* Tue Aug 22 2006 Roland McGrath <roland@redhat.com> - 4.5.14-3
|
||||||
|
- Fix bogus decoding of syscalls >= 300 (#201462, #202620).
|
||||||
|
|
||||||
|
* Fri Jul 14 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-2
|
||||||
|
- rebuild
|
||||||
|
|
||||||
|
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-1.2
|
||||||
|
- bump again for long double bug on ppc{,64}
|
||||||
|
|
||||||
|
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-1.1
|
||||||
|
- rebuilt for new gcc4.1 snapshot and glibc changes
|
||||||
|
|
||||||
|
* Mon Jan 16 2006 Roland McGrath <roland@redhat.com> - 4.5.14-1
|
||||||
|
- Fix biarch decoding of socket syscalls (#174354).
|
||||||
|
- Fix biarch -e support (#173986).
|
||||||
|
- Accept numeric syscalls in -e (#174798).
|
||||||
|
- Fix ipc syscall decoding (#164755).
|
||||||
|
- Improve msgrcv printing (#164757).
|
||||||
|
- Man page updates (#165375).
|
||||||
|
- Improve mount syscall printing (#165377).
|
||||||
|
- Correct printing of restarting syscalls (#165469).
|
||||||
|
|
||||||
|
* Wed Aug 3 2005 Roland McGrath <roland@redhat.com> - 4.5.13-1
|
||||||
|
- Fix setsockopt decoding on 64-bit (#162449).
|
||||||
|
- Fix typos in socket option name strings (#161578).
|
||||||
|
- Display more IPV6 socket options by name (#162450).
|
||||||
|
- Don't display inappropriate syscalls for -e trace=file (#159340).
|
||||||
|
- New selector type -e trace=desc for file-descriptor using calls (#159400).
|
||||||
|
- Fix 32-bit old_mmap syscall decoding on x86-64 (#162467, #164215).
|
||||||
|
- Fix errors detaching from multithreaded process on interrupt (#161919).
|
||||||
|
- Note 4.5.12 fix for crash handling bad signal numbers (#162739).
|
||||||
|
|
||||||
|
* Wed Jun 8 2005 Roland McGrath <roland@redhat.com> - 4.5.12-1
|
||||||
|
- Fix known syscall recognition for IA32 processes on x86-64 (#158934).
|
||||||
|
- Fix bad output for ptrace on x86-64 (#159787).
|
||||||
|
- Fix potential buffer overruns (#151570, #159196).
|
||||||
|
- Make some diagnostics more consistent (#159308).
|
||||||
|
- Update PowerPC system calls.
|
||||||
|
- Better printing for Linux aio system calls.
|
||||||
|
- Don't truncate statfs64 fields to 32 bits in output (#158243).
|
||||||
|
- Cosmetic code cleanups (#159688).
|
||||||
|
|
||||||
|
* Tue Mar 22 2005 Roland McGrath <roland@redhat.com> - 4.5.11-1
|
||||||
|
- Build tweaks.
|
||||||
|
- Note 4.5.10 select fix (#151570).
|
||||||
|
|
||||||
|
* Mon Mar 14 2005 Roland McGrath <roland@redhat.com> - 4.5.10-1
|
||||||
|
- Fix select handling on nonstandard fd_set sizes.
|
||||||
|
- Don't print errors for null file name pointers.
|
||||||
|
- Fix initial execve output with -i (#143365).
|
||||||
|
|
||||||
|
* Fri Feb 4 2005 Roland McGrath <roland@redhat.com> - 4.5.9-2
|
||||||
|
- update ia64 syscall list (#146245)
|
||||||
|
- fix x86_64 syscall argument extraction for 32-bit processes (#146093)
|
||||||
|
- fix -e signal=NAME parsing (#143362)
|
||||||
|
- fix x86_64 exit_group syscall handling
|
||||||
|
- improve socket ioctl printing (#138223)
|
||||||
|
- code cleanups (#143369, #143370)
|
||||||
|
- improve mount flags printing (#141932)
|
||||||
|
- support symbolic printing of x86_64 arch_prctl parameters (#142667)
|
||||||
|
- fix potential crash in getxattr printing
|
||||||
|
|
||||||
|
* Tue Oct 19 2004 Roland McGrath <roland@redhat.com> - 4.5.8-1
|
||||||
|
- fix multithreaded exit handling (#132150, #135254)
|
||||||
|
- fix ioctl name matching (#129808)
|
||||||
|
- print RTC_* ioctl structure contents (#58606)
|
||||||
|
- grok epoll_* syscalls (#134463)
|
||||||
|
- grok new RLIMIT_* values (#133594)
|
||||||
|
- print struct cmsghdr contents for sendmsg (#131689)
|
||||||
|
- fix clock_* and timer_* argument output (#131420)
|
||||||
|
|
||||||
|
* Tue Aug 31 2004 Roland McGrath <roland@redhat.com> - 4.5.7-2
|
||||||
|
- new upstream version, misc fixes and updates (#128091, #129166, #128391, #129378, #130965, #131177)
|
||||||
|
|
||||||
|
* Mon Jul 12 2004 Roland McGrath <roland@redhat.com> 4.5.6-1
|
||||||
|
- new upstream version, updates ioctl lists (#127398), fixes quotactl (#127393), more ioctl decoding (#126917)
|
||||||
|
|
||||||
|
* Sun Jun 27 2004 Roland McGrath <roland@redhat.com> 4.5.5-1
|
||||||
|
- new upstream version, fixes x86-64 biarch support (#126547)
|
||||||
|
|
||||||
|
* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com> 4.5.4-2
|
||||||
|
- rebuilt
|
||||||
|
|
||||||
|
* Thu Jun 3 2004 Roland McGrath <roland@redhat.com> 4.5.4-0.FC1
|
||||||
|
- rebuilt for FC1 update
|
||||||
|
|
||||||
|
* Thu Jun 3 2004 Roland McGrath <roland@redhat.com> 4.5.4-1
|
||||||
|
- new upstream version, more ioctls (#122257), minor fixes
|
||||||
|
|
||||||
|
* Fri Apr 16 2004 Roland McGrath <roland@redhat.com> 4.5.3-1
|
||||||
|
- new upstream version, mq_* calls (#120701), -p vs NPTL (#120462), more fixes (#118694, #120541, #118685)
|
||||||
|
|
||||||
|
* Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com> 4.5.2-1.1
|
||||||
|
- rebuilt
|
||||||
|
|
||||||
|
* Mon Mar 1 2004 Roland McGrath <roland@redhat.com> 4.5.2-1
|
||||||
|
- new upstream version, sched_* calls (#116990), show core flag (#112117)
|
||||||
|
|
||||||
|
* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
|
||||||
|
- rebuilt
|
||||||
|
|
||||||
|
* Thu Nov 13 2003 Roland McGrath <roland@redhat.com> 4.5.1-1
|
||||||
|
- new upstream version, more fixes (#108012, #105366, #105359, #105358)
|
||||||
|
|
||||||
|
* Tue Sep 30 2003 Roland McGrath <roland@redhat.com> 4.5-3
|
||||||
|
- revert bogus s390 fix
|
||||||
|
|
||||||
|
* Thu Sep 25 2003 Roland McGrath <roland@redhat.com> 4.5-1.2.1AS
|
||||||
|
- rebuilt for 2.1AS erratum
|
||||||
|
|
||||||
|
* Wed Sep 24 2003 Roland McGrath <roland@redhat.com> 4.5-2
|
||||||
|
- rebuilt
|
||||||
|
|
||||||
|
* Wed Sep 24 2003 Roland McGrath <roland@redhat.com> 4.5-1
|
||||||
|
- new upstream version, more fixes (#101499, #104365)
|
||||||
|
|
||||||
|
* Thu Jul 17 2003 Roland McGrath <roland@redhat.com> 4.4.99-2
|
||||||
|
- rebuilt
|
||||||
|
|
||||||
|
* Thu Jul 17 2003 Roland McGrath <roland@redhat.com> 4.4.99-1
|
||||||
|
- new upstream version, groks more new system calls, PF_INET6 sockets
|
||||||
|
|
||||||
|
* Tue Jun 10 2003 Roland McGrath <roland@redhat.com> 4.4.98-1
|
||||||
|
- new upstream version, more fixes (#90754, #91085)
|
||||||
|
|
||||||
|
* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
|
||||||
|
- rebuilt
|
||||||
|
|
||||||
|
* Sun Mar 30 2003 Roland McGrath <roland@redhat.com> 4.4.96-1
|
||||||
|
- new upstream version, handles yet more 2.5 syscalls, x86_64 & ia64 fixes
|
||||||
|
|
||||||
|
* Mon Feb 24 2003 Elliot Lee <sopwith@redhat.com> 4.4.95-2
|
||||||
|
- rebuilt
|
||||||
|
|
||||||
|
* Mon Feb 24 2003 Roland McGrath <roland@redhat.com> 4.4.95-1
|
||||||
|
- new upstream version, fixed getresuid/getresgid (#84959)
|
||||||
|
|
||||||
|
* Wed Feb 19 2003 Roland McGrath <roland@redhat.com> 4.4.94-1
|
||||||
|
- new upstream version, new option -E to set environment variables (#82392)
|
||||||
|
|
||||||
|
* Wed Jan 22 2003 Tim Powers <timp@redhat.com> 4.4.93-2
|
||||||
|
- rebuilt
|
||||||
|
|
||||||
|
* Tue Jan 21 2003 Roland McGrath <roland@redhat.com> 4.4.93-1
|
||||||
|
- new upstream version, fixes ppc and s390 bugs, adds missing ptrace requests
|
||||||
|
|
||||||
|
* Fri Jan 10 2003 Roland McGrath <roland@redhat.com> 4.4.91-1
|
||||||
|
- new upstream version, fixes -f on x86-64
|
||||||
|
|
||||||
|
* Fri Jan 10 2003 Roland McGrath <roland@redhat.com> 4.4.90-1
|
||||||
|
- new upstream version, fixes all known bugs modulo ia64 and s390 issues
|
||||||
|
|
||||||
|
* Fri Jan 03 2003 Florian La Roche <Florian.LaRoche@redhat.de> 4.4-11
|
||||||
|
- add further s390 patch from IBM
|
||||||
|
|
||||||
|
* Wed Nov 27 2002 Tim Powers <timp@redhat.com> 4.4-10
|
||||||
|
- remove unpackaged files from the buildroot
|
||||||
|
|
||||||
|
* Mon Oct 07 2002 Phil Knirsch <pknirsch@redhat.com> 4.4-9.1
|
||||||
|
- Added latest s390(x) patch.
|
||||||
|
|
||||||
|
* Fri Sep 06 2002 Karsten Hopp <karsten@redhat.de> 4.4-9
|
||||||
|
- preliminary x86_64 support with an ugly patch to help
|
||||||
|
debugging. Needs cleanup!
|
||||||
|
|
||||||
|
* Mon Sep 2 2002 Jakub Jelinek <jakub@redhat.com> 4.4-8
|
||||||
|
- newer version of the clone fixing patch (Roland McGrath)
|
||||||
|
- aio syscalls for i386/ia64/ppc (Ben LaHaise)
|
||||||
|
|
||||||
|
* Wed Aug 28 2002 Jakub Jelinek <jakub@redhat.com> 4.4-7
|
||||||
|
- fix strace -f (Roland McGrath, #68994)
|
||||||
|
- handle ?et_thread_area, SA_RESTORER (Ulrich Drepper)
|
||||||
|
|
||||||
|
* Fri Jun 21 2002 Jakub Jelinek <jakub@redhat.com> 4.4-6
|
||||||
|
- handle futexes, *xattr, sendfile64, etc. (Ulrich Drepper)
|
||||||
|
- handle modify_ldt (#66894)
|
||||||
|
|
||||||
|
* Thu May 23 2002 Tim Powers <timp@redhat.com>
|
||||||
|
- automated rebuild
|
||||||
|
|
||||||
|
* Tue Apr 16 2002 Jakub Jelinek <jakub@redhat.com> 4.4-4
|
||||||
|
- fix for the last patch by Jeff Law (#62591)
|
||||||
|
|
||||||
|
* Mon Mar 4 2002 Preston Brown <pbrown@redhat.com> 4.4-3
|
||||||
|
- integrate patch from Jeff Law to eliminate hang tracing threads
|
||||||
|
|
||||||
|
* Sat Feb 23 2002 Florian La Roche <Florian.LaRoche@redhat.de>
|
||||||
|
- minor update from debian tar-ball
|
||||||
|
|
||||||
|
* Wed Jan 02 2002 Florian La Roche <Florian.LaRoche@redhat.de>
|
||||||
|
- update to 4.4
|
||||||
|
|
||||||
|
* Sun Jul 22 2001 Florian La Roche <Florian.LaRoche@redhat.de>
|
||||||
|
- disable s390 patches, they are already included
|
||||||
|
|
||||||
|
* Wed Jul 18 2001 Preston Brown <pbrown@redhat.com> 4.3-1
|
||||||
|
- new upstream version. Seems to have integrated most new syscalls
|
||||||
|
- tracing threaded programs is now functional.
|
||||||
|
|
||||||
|
* Mon Jun 11 2001 Than Ngo <than@redhat.com>
|
||||||
|
- port s390 patches from IBM
|
||||||
|
|
||||||
|
* Wed May 16 2001 Nalin Dahyabhai <nalin@redhat.com>
|
||||||
|
- modify new syscall patch to allocate enough heap space in setgroups32()
|
||||||
|
|
||||||
|
* Wed Feb 14 2001 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
- #include <time.h> in addition to <sys/time.h>
|
||||||
|
|
||||||
|
* Fri Jan 26 2001 Karsten Hopp <karsten@redhat.com>
|
||||||
|
- clean up conflicting patches. This happened only
|
||||||
|
when building on S390
|
||||||
|
|
||||||
|
* Fri Jan 19 2001 Bill Nottingham <notting@redhat.com>
|
||||||
|
- update to CVS, reintegrate ia64 support
|
||||||
|
|
||||||
|
* Fri Dec 8 2000 Bernhard Rosenkraenzer <bero@redhat.com>
|
||||||
|
- Get S/390 support into the normal package
|
||||||
|
|
||||||
|
* Sat Nov 18 2000 Florian La Roche <Florian.LaRoche@redhat.de>
|
||||||
|
- added S/390 patch from IBM, adapting it to not conflict with
|
||||||
|
IA64 patch
|
||||||
|
|
||||||
|
* Sat Aug 19 2000 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
- doh, actually apply the 2.4 syscalls patch
|
||||||
|
- make it compile with 2.4.0-test7-pre4+ headers, add
|
||||||
|
getdents64 and fcntl64
|
||||||
|
|
||||||
|
* Thu Aug 3 2000 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
- add a bunch of new 2.4 syscalls (#14036)
|
||||||
|
|
||||||
|
* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
|
||||||
|
- automatic rebuild
|
||||||
|
- excludearch ia64
|
||||||
|
|
||||||
|
* Fri Jun 2 2000 Matt Wilson <msw@redhat.com>
|
||||||
|
- use buildinstall for FHS
|
||||||
|
|
||||||
|
* Wed May 24 2000 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
- make things compile on sparc
|
||||||
|
- fix sigreturn on sparc
|
||||||
|
|
||||||
|
* Fri Mar 31 2000 Bill Nottingham <notting@redhat.com>
|
||||||
|
- fix stat64 misdef (#10485)
|
||||||
|
|
||||||
|
* Tue Mar 21 2000 Michael K. Johnson <johnsonm@redhat.com>
|
||||||
|
- added ia64 patch
|
||||||
|
|
||||||
|
* Thu Feb 03 2000 Cristian Gafton <gafton@redhat.com>
|
||||||
|
- man pages are compressed
|
||||||
|
- version 4.2 (why are we keeping all these patches around?)
|
||||||
|
|
||||||
|
* Sat Nov 27 1999 Jeff Johnson <jbj@redhat.com>
|
||||||
|
- update to 4.1 (with sparc socketcall patch).
|
||||||
|
|
||||||
|
* Fri Nov 12 1999 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
- fix socketcall on sparc.
|
||||||
|
|
||||||
|
* Thu Sep 02 1999 Cristian Gafton <gafton@redhat.com>
|
||||||
|
- fix KERN_SECURELVL compile problem
|
||||||
|
|
||||||
|
* Tue Aug 31 1999 Cristian Gafton <gafton@redhat.com>
|
||||||
|
- added alpha patch from HJLu to fix the osf_sigprocmask interpretation
|
||||||
|
|
||||||
|
* Sat Jun 12 1999 Jeff Johnson <jbj@redhat.com>
|
||||||
|
- update to 3.99.1.
|
||||||
|
|
||||||
|
* Wed Jun 2 1999 Jeff Johnson <jbj@redhat.com>
|
||||||
|
- add (the other :-) jj's sparc patch.
|
||||||
|
|
||||||
|
* Wed May 26 1999 Jeff Johnson <jbj@redhat.com>
|
||||||
|
- upgrade to 3.99 in order to
|
||||||
|
- add new 2.2.x open flags (#2955).
|
||||||
|
- add new 2.2.x syscalls (#2866).
|
||||||
|
- strace 3.1 patches carried along for now.
|
||||||
|
|
||||||
|
* Sun May 16 1999 Jeff Johnson <jbj@redhat.com>
|
||||||
|
- don't rely on (broken!) rpm %%patch (#2735)
|
||||||
|
|
||||||
|
* Tue Apr 06 1999 Preston Brown <pbrown@redhat.com>
|
||||||
|
- strip binary
|
||||||
|
|
||||||
|
* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
|
||||||
|
- auto rebuild in the new build environment (release 16)
|
||||||
|
|
||||||
|
* Tue Feb 9 1999 Jeff Johnson <jbj@redhat.com>
|
||||||
|
- vfork est arrive!
|
||||||
|
|
||||||
|
* Tue Feb 9 1999 Christopher Blizzard <blizzard@redhat.com>
|
||||||
|
- Add patch to follow clone() syscalls, too.
|
||||||
|
|
||||||
|
* Sun Jan 17 1999 Jeff Johnson <jbj@redhat.com>
|
||||||
|
- patch to build alpha/sparc with glibc 2.1.
|
||||||
|
|
||||||
|
* Thu Dec 03 1998 Cristian Gafton <gafton@redhat.com>
|
||||||
|
- patch to build on ARM
|
||||||
|
|
||||||
|
* Wed Sep 30 1998 Jeff Johnson <jbj@redhat.com>
|
||||||
|
- fix typo (printf, not tprintf).
|
||||||
|
|
||||||
|
* Sat Sep 19 1998 Jeff Johnson <jbj@redhat.com>
|
||||||
|
- fix compile problem on sparc.
|
||||||
|
|
||||||
|
* Tue Aug 18 1998 Cristian Gafton <gafton@redhat.com>
|
||||||
|
- buildroot
|
||||||
|
|
||||||
|
* Mon Jul 20 1998 Cristian Gafton <gafton@redhat.com>
|
||||||
|
- added the umoven patch from James Youngman <jay@gnu.org>
|
||||||
|
- fixed build problems on newer glibc releases
|
||||||
|
|
||||||
|
* Mon Jun 08 1998 Prospector System <bugs@redhat.com>
|
||||||
|
- translations modified for de, fr, tr
|
Loading…
Reference in New Issue
Block a user