On Thu, Sep 05, 2019 at 11:09:35AM +0200, Andreas Schwab wrote:
On Sep 05 2019, Aleksa Sarai cyphar@cyphar.com wrote:
diff --git a/lib/struct_user.c b/lib/struct_user.c new file mode 100644 index 000000000000..7301ab1bbe98 --- /dev/null +++ b/lib/struct_user.c @@ -0,0 +1,182 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/*
- Copyright (C) 2019 SUSE LLC
- Copyright (C) 2019 Aleksa Sarai cyphar@cyphar.com
- */
+#include <linux/types.h> +#include <linux/export.h> +#include <linux/uaccess.h> +#include <linux/kernel.h> +#include <linux/string.h>
+#define BUFFER_SIZE 64
+/*
- "memset(p, 0, size)" but for user space buffers. Caller must have already
- checked access_ok(p, size).
- */
+static int __memzero_user(void __user *p, size_t s) +{
- const char zeros[BUFFER_SIZE] = {};
Perhaps make that static?
On SMP? It should at least be per cpu, and I'm not even sure with preemption.
Gabriel
Andreas.
-- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."