Blame SOURCES/libcap-check-allocation.patch
|
|
86d678 |
--- a/libcap/cap_alloc.c 2021-02-05 06:52:17.000000000 +0100
|
|
|
86d678 |
+++ b/libcap/cap_alloc.c 2022-05-17 20:06:53.570560396 +0200
|
|
|
86d678 |
@@ -123,6 +123,10 @@
|
|
|
86d678 |
|
|
|
86d678 |
cap_iab_t cap_iab_init(void) {
|
|
|
86d678 |
__u32 *base = calloc(1, sizeof(__u32) + sizeof(struct cap_iab_s));
|
|
|
86d678 |
+ if (base == NULL) {
|
|
|
86d678 |
+ _cap_debug("out of memory");
|
|
|
86d678 |
+ return NULL;
|
|
|
86d678 |
+ }
|
|
|
86d678 |
*(base++) = CAP_IAB_MAGIC;
|
|
|
86d678 |
return (cap_iab_t) base;
|
|
|
86d678 |
}
|
|
|
86d678 |
@@ -138,6 +142,10 @@
|
|
|
86d678 |
const char * const *envp)
|
|
|
86d678 |
{
|
|
|
86d678 |
__u32 *data = calloc(1, sizeof(__u32) + sizeof(struct cap_launch_s));
|
|
|
86d678 |
+ if (data == NULL) {
|
|
|
86d678 |
+ _cap_debug("out of memory");
|
|
|
86d678 |
+ return NULL;
|
|
|
86d678 |
+ }
|
|
|
86d678 |
*(data++) = CAP_LAUNCH_MAGIC;
|
|
|
86d678 |
struct cap_launch_s *attr = (struct cap_launch_s *) data;
|
|
|
86d678 |
attr->arg0 = arg0;
|
|
|
86d678 |
--- a/libcap/cap_proc.c 2022-05-17 20:07:36.301803359 +0200
|
|
|
86d678 |
+++ b/libcap/cap_proc.c 2022-05-17 20:06:59.238592623 +0200
|
|
|
86d678 |
@@ -677,9 +677,25 @@
|
|
|
86d678 |
*/
|
|
|
86d678 |
cap_iab_t cap_iab_get_proc(void)
|
|
|
86d678 |
{
|
|
|
86d678 |
- cap_iab_t iab = cap_iab_init();
|
|
|
86d678 |
- cap_t current = cap_get_proc();
|
|
|
86d678 |
+ cap_iab_t iab;
|
|
|
86d678 |
+ cap_t current;
|
|
|
86d678 |
+
|
|
|
86d678 |
+ iab = cap_iab_init();
|
|
|
86d678 |
+ if (iab == NULL) {
|
|
|
86d678 |
+ _cap_debug("no memory for IAB tuple");
|
|
|
86d678 |
+ return NULL;
|
|
|
86d678 |
+ }
|
|
|
86d678 |
+
|
|
|
86d678 |
+ current = cap_get_proc();
|
|
|
86d678 |
+ if (current == NULL) {
|
|
|
86d678 |
+ _cap_debug("no memory for cap_t");
|
|
|
86d678 |
+ cap_free(iab);
|
|
|
86d678 |
+ return NULL;
|
|
|
86d678 |
+ }
|
|
|
86d678 |
+
|
|
|
86d678 |
cap_iab_fill(iab, CAP_IAB_INH, current, CAP_INHERITABLE);
|
|
|
86d678 |
+ cap_free(current);
|
|
|
86d678 |
+
|
|
|
86d678 |
cap_value_t c;
|
|
|
86d678 |
for (c = cap_max_bits(); c; ) {
|
|
|
86d678 |
--c;
|