fix: don't allow userspace copy to read kernel memory
[lttng-modules.git] / probes / lttng-probe-user.c
index e92107d94cfbd1948eb3773deb6c55a228f48505..8de5ed5047890e46d00efcace02f3fe0c527eace 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <linux/uaccess.h>
 #include <linux/module.h>
+#include <wrapper/uaccess.h>
 #include <probes/lttng-probe-user.h>
 
 /*
 long lttng_strlen_user_inatomic(const char *addr)
 {
        long count = 0;
-       mm_segment_t old_fs = get_fs();
 
-       set_fs(KERNEL_DS);
+       if (!addr)
+               return 0;
+
        pagefault_disable();
        for (;;) {
                char v;
                unsigned long ret;
 
-               if (unlikely(!access_ok(VERIFY_READ,
+               if (unlikely(!lttng_access_ok(VERIFY_READ,
                                (__force const char __user *) addr,
                                sizeof(v))))
                        break;
@@ -54,7 +56,6 @@ long lttng_strlen_user_inatomic(const char *addr)
                addr++;
        }
        pagefault_enable();
-       set_fs(old_fs);
        return count;
 }
 EXPORT_SYMBOL_GPL(lttng_strlen_user_inatomic);
This page took 0.023223 seconds and 4 git commands to generate.