summaryrefslogtreecommitdiff
path: root/Kernel/Net
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2021-08-05 23:10:14 +0200
committerAndreas Kling <kling@serenityos.org>2021-08-06 00:37:47 +0200
commit5b13af0edd3622d65f4adca93ec822f19ca75edc (patch)
treefac2dfeda8d063df32f8e01640184d23b5b8db4c /Kernel/Net
parentb96ad76cba891e2ed56496c299158a8b43396ec8 (diff)
downloadserenity-5b13af0edd3622d65f4adca93ec822f19ca75edc.zip
Kernel: Use try_copy_kstring_from_user() in Socket::setsockopt()
Diffstat (limited to 'Kernel/Net')
-rw-r--r--Kernel/Net/Socket.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/Kernel/Net/Socket.cpp b/Kernel/Net/Socket.cpp
index 2615d7bbd3..e7bc17a581 100644
--- a/Kernel/Net/Socket.cpp
+++ b/Kernel/Net/Socket.cpp
@@ -108,10 +108,10 @@ KResult Socket::setsockopt(int level, int option, Userspace<const void*> user_va
if (user_value_size != IFNAMSIZ)
return EINVAL;
auto user_string = static_ptr_cast<const char*>(user_value);
- auto ifname = copy_string_from_user(user_string, user_value_size);
- if (ifname.is_null())
- return EFAULT;
- auto device = NetworkingManagement::the().lookup_by_name(ifname);
+ auto ifname_or_error = try_copy_kstring_from_user(user_string, user_value_size);
+ if (ifname_or_error.is_error())
+ return ifname_or_error.error();
+ auto device = NetworkingManagement::the().lookup_by_name(ifname_or_error.value()->view());
if (!device)
return ENODEV;
m_bound_interface = device;