From 0218c62be4320c61e006c2b7c68deb1489171764 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Tue, 15 Feb 2022 20:56:51 +0200 Subject: [PATCH] Kernel: Make Process::procfs_get_pledge_stats OOM-fallible We can completely avoid the string allocation by using string_view(). --- Kernel/ProcessSpecificExposed.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Kernel/ProcessSpecificExposed.cpp b/Kernel/ProcessSpecificExposed.cpp index fec05d7be14..6189168d7d7 100644 --- a/Kernel/ProcessSpecificExposed.cpp +++ b/Kernel/ProcessSpecificExposed.cpp @@ -126,16 +126,16 @@ ErrorOr> Process::lookup_file_descriptions_directory(const ErrorOr Process::procfs_get_pledge_stats(KBufferBuilder& builder) const { JsonObjectSerializer obj { builder }; -#define __ENUMERATE_PLEDGE_PROMISE(x) \ - if (has_promised(Pledge::x)) { \ - if (!builder.is_empty()) \ - builder.append(' '); \ - builder.append(#x); \ +#define __ENUMERATE_PLEDGE_PROMISE(x) \ + if (has_promised(Pledge::x)) { \ + if (!builder.is_empty()) \ + TRY(builder.try_append(' ')); \ + TRY(builder.try_append(#x)); \ } if (has_promises()) { StringBuilder builder; ENUMERATE_PLEDGE_PROMISES - obj.add("promises", builder.build()); + obj.add("promises", builder.string_view()); } #undef __ENUMERATE_PLEDGE_PROMISE obj.finish();