Author: Jordan Rupprecht
Date: 2022-12-08T16:37:43-08:00
New Revision: 23f145daa50c3f51a7fb8c8d68c55e5f4a8027c2

URL: 
https://github.com/llvm/llvm-project/commit/23f145daa50c3f51a7fb8c8d68c55e5f4a8027c2
DIFF: 
https://github.com/llvm/llvm-project/commit/23f145daa50c3f51a7fb8c8d68c55e5f4a8027c2.diff

LOG: [NFC] Fix leak in command options configuration.

`m_options.Append(new OptionPermissions())` leaks because the pointer passed in 
is not owned. Use a class member to ensure lifetime, which is the common 
pattern used for this API.

Found by the LLDB command interpreter fuzzer. The fuzz input is running `ap $` 
twice.

Added: 
    

Modified: 
    lldb/source/Commands/CommandObjectPlatform.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Commands/CommandObjectPlatform.cpp 
b/lldb/source/Commands/CommandObjectPlatform.cpp
index 98c6a3b2dd301..d72dd06c31f9e 100644
--- a/lldb/source/Commands/CommandObjectPlatform.cpp
+++ b/lldb/source/Commands/CommandObjectPlatform.cpp
@@ -456,12 +456,13 @@ class CommandObjectPlatformMkDir : public 
CommandObjectParsed {
 
   Options *GetOptions() override {
     if (!m_options.DidFinalize()) {
-      m_options.Append(new OptionPermissions());
+      m_options.Append(&m_option_permissions);
       m_options.Finalize();
     }
     return &m_options;
   }
 
+  OptionPermissions m_option_permissions;
   OptionGroupOptions m_options;
 };
 
@@ -519,12 +520,13 @@ class CommandObjectPlatformFOpen : public 
CommandObjectParsed {
 
   Options *GetOptions() override {
     if (!m_options.DidFinalize()) {
-      m_options.Append(new OptionPermissions());
+      m_options.Append(&m_option_permissions);
       m_options.Finalize();
     }
     return &m_options;
   }
 
+  OptionPermissions m_option_permissions;
   OptionGroupOptions m_options;
 };
 


        
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to