Author: wallace
Date: Mon Oct  7 13:26:49 2019
New Revision: 373953

URL: http://llvm.org/viewvc/llvm-project?rev=373953&view=rev
Log:
[gdb-remote] process properly effective uid

Summary:
Someone wrote SetEffectiveSetEffectiveGroupID instead of SetEffectiveUserID.

After this fix, the android process list can show user names, e.g.

```
PID    PARENT USER       GROUP      EFF USER   EFF GROUP  TRIPLE                
               ARGUMENTS
====== ====== ========== ========== ========== ========== 
============================== ============================
529    1      root       0          root       0                                
         /sbin/ueventd
```
Reviewers: labath,clayborg,aadsm,xiaobai

Subscribers:

Modified:
    
lldb/trunk/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestPlatformClient.py
    
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp

Modified: 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestPlatformClient.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestPlatformClient.py?rev=373953&r1=373952&r2=373953&view=diff
==============================================================================
--- 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestPlatformClient.py
 (original)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestPlatformClient.py
 Mon Oct  7 13:26:49 2019
@@ -8,13 +8,13 @@ from gdbclientutils import *
 
 class TestPlatformClient(GDBRemoteTestBase):
 
-    def test_process_list_with_all_users(self):
+    def test_process_list(self):
         """Test connecting to a remote linux platform"""
 
         class MyResponder(MockGDBServerResponder):
             def qfProcessInfo(self, packet):
                 if "all_users:1" in packet:
-                    return "pid:10;ppid:1;uid:1;gid:1;euid:1;egid:1;name:" + 
binascii.hexlify("/a/process") + ";args:"
+                    return "pid:10;ppid:1;uid:2;gid:3;euid:4;egid:5;name:" + 
binascii.hexlify("/a/process") + ";args:"
                 else:
                     return "E04"
 
@@ -28,6 +28,10 @@ class TestPlatformClient(GDBRemoteTestBa
             self.assertTrue(self.dbg.GetSelectedPlatform().IsConnected())
             self.expect("platform process list -x",
                         startstr="1 matching process was found", 
endstr="process" + os.linesep)
+            self.expect("platform process list -xv",
+                        substrs=[
+                            "PID    PARENT USER       GROUP      EFF USER   
EFF GROUP",
+                            "10     1      2          3          4          
5"])
             self.expect("platform process list",
                         error="error: no processes were found on the 
\"remote-linux\" platform")
         finally:

Modified: 
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp?rev=373953&r1=373952&r2=373953&view=diff
==============================================================================
--- 
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp 
(original)
+++ 
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp 
Mon Oct  7 13:26:49 2019
@@ -1906,7 +1906,7 @@ bool GDBRemoteCommunicationClient::Decod
       } else if (name.equals("euid")) {
         uint32_t uid = UINT32_MAX;
         value.getAsInteger(0, uid);
-        process_info.SetEffectiveGroupID(uid);
+        process_info.SetEffectiveUserID(uid);
       } else if (name.equals("gid")) {
         uint32_t gid = UINT32_MAX;
         value.getAsInteger(0, gid);


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

Reply via email to