Fix: Remove 'type' argument from access_ok() function (v5.0)
[lttng-modules.git] / probes / lttng-probe-user.c
index d0b5cf297367ce3c209b69ecb491e969ec321270..ed566ddb424b123a02f8ec1ba496517801a7eb2d 100644 (file)
@@ -19,7 +19,9 @@
  */
 
 #include <linux/uaccess.h>
-#include "lttng-probe-user.h"
+#include <linux/module.h>
+#include <wrapper/uaccess.h>
+#include <probes/lttng-probe-user.h>
 
 /*
  * Calculate string length. Include final null terminating character if there is
 long lttng_strlen_user_inatomic(const char *addr)
 {
        long count = 0;
-       mm_segment_t old_fs = get_fs();
+       mm_segment_t old_fs;
 
+       if (!addr)
+               return 0;
+
+       old_fs = get_fs();
        set_fs(KERNEL_DS);
        pagefault_disable();
        for (;;) {
                char v;
                unsigned long ret;
 
+               if (unlikely(!lttng_access_ok(VERIFY_READ,
+                               (__force const char __user *) addr,
+                               sizeof(v))))
+                       break;
                ret = __copy_from_user_inatomic(&v,
                        (__force const char __user *)(addr),
                        sizeof(v));
@@ -52,3 +62,4 @@ long lttng_strlen_user_inatomic(const char *addr)
        set_fs(old_fs);
        return count;
 }
+EXPORT_SYMBOL_GPL(lttng_strlen_user_inatomic);
This page took 0.023416 seconds and 4 git commands to generate.