浏览代码

Kernel: Make InodeFile::create() API OOM safe

Brian Gianforcaro 4 年之前
父节点
当前提交
11bd2002bb
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      Kernel/FileSystem/InodeFile.h

+ 5 - 2
Kernel/FileSystem/InodeFile.h

@@ -14,9 +14,12 @@ class Inode;
 
 class InodeFile final : public File {
 public:
-    static NonnullRefPtr<InodeFile> create(NonnullRefPtr<Inode>&& inode)
+    static KResultOr<NonnullRefPtr<InodeFile>> create(NonnullRefPtr<Inode>&& inode)
     {
-        return adopt_ref(*new InodeFile(move(inode)));
+        auto file = adopt_ref_if_nonnull(new InodeFile(move(inode)));
+        if (!file)
+            return ENOMEM;
+        return file.release_nonnull();
     }
 
     virtual ~InodeFile() override;