From b4f26c2b31109c1cc47f016cb8aa5f362e40a281 Mon Sep 17 00:00:00 2001 From: Ben Wiederhake Date: Sat, 22 Aug 2020 16:45:52 +0200 Subject: [PATCH] AK: Prevent confusing silent misuse of Userspace --- AK/Userspace.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/AK/Userspace.h b/AK/Userspace.h index d7586b7ef7..eb6bb0c44a 100644 --- a/AK/Userspace.h +++ b/AK/Userspace.h @@ -48,6 +48,13 @@ public: operator bool() const { return m_ptr; } operator FlatPtr() const { return (FlatPtr)m_ptr; } + // Disable default implementations that would use surprising integer promotion. + bool operator==(const Userspace&) const = delete; + bool operator<=(const Userspace&) const = delete; + bool operator>=(const Userspace&) const = delete; + bool operator<(const Userspace&) const = delete; + bool operator>(const Userspace&) const = delete; + #ifdef KERNEL Userspace(FlatPtr ptr) : m_ptr(ptr) @@ -86,5 +93,5 @@ inline Userspace static_ptr_cast(const Userspace& ptr) } -using AK::Userspace; using AK::static_ptr_cast; +using AK::Userspace;