diff options
Diffstat (limited to 'dev-debug/scap-driver/files/0.29.3-fix-kmod-build-on-6.8+.patch')
-rw-r--r-- | dev-debug/scap-driver/files/0.29.3-fix-kmod-build-on-6.8+.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/dev-debug/scap-driver/files/0.29.3-fix-kmod-build-on-6.8+.patch b/dev-debug/scap-driver/files/0.29.3-fix-kmod-build-on-6.8+.patch new file mode 100644 index 000000000000..b33ba164b97a --- /dev/null +++ b/dev-debug/scap-driver/files/0.29.3-fix-kmod-build-on-6.8+.patch @@ -0,0 +1,44 @@ + +Bug: https://bugs.gentoo.org/926768 +Minimal subset of changes from: https://github.com/falcosecurity/libs/pull/1632 + +--- a/driver/ppm_events.c 2024-03-11 15:19:23.000000000 +0100 ++++ b/driver/ppm_events.c 2024-03-11 15:22:48.230598879 +0100 +@@ -624,12 +624,16 @@ int val_to_ring(struct event_filler_argu + if (unlikely(len < 0)) + return PPM_FAILURE_INVALID_USER_MEMORY; + } else { +- len = (int)strlcpy(args->buffer + args->arg_data_offset, ++ len = (int)strscpy(args->buffer + args->arg_data_offset, + (const char *)(syscall_arg_t)val, + max_arg_size); + +- if (++len > (int)max_arg_size) ++ if (len == -E2BIG) { + len = max_arg_size; ++ } else { ++ len++; ++ } ++ + } + + /* +@@ -640,12 +644,15 @@ int val_to_ring(struct event_filler_argu + /* + * Handle NULL pointers + */ +- len = (int)strlcpy(args->buffer + args->arg_data_offset, ++ len = (int)strscpy(args->buffer + args->arg_data_offset, + "(NULL)", + max_arg_size); + +- if (++len > (int)max_arg_size) +- len = max_arg_size; ++ if (len == -E2BIG) { ++ len = max_arg_size; ++ } else { ++ len++; ++ } + } + + break; |