AuditTrailClient changed due to audit-trail API ammendments.
authorDmytro Lomtiev <d.lomtev@samsung.com>
Tue, 10 Apr 2018 12:09:56 +0000 (15:09 +0300)
committerDmytro Lomtiev <d.lomtev@samsung.com>
Tue, 10 Apr 2018 12:10:51 +0000 (15:10 +0300)
device-agent/communication/CMakeLists.txt
device-agent/daemon/audit_trail_client.cpp
device-agent/utest/mock/audit_trail_mock.h
device-agent/utest/mock/audit_trail_stub.cpp
device-agent/utest/mock/audit_trail_stub.h
device-agent/utest/test_audit_trail_client.cpp
device-agent/utest/test_rest.cpp

index c4ddf51..75aabea 100644 (file)
@@ -11,7 +11,7 @@ include_directories(
 
 file(GLOB COMM_SRC src/*.cpp)
 
-pkg_check_modules(pkgs REQUIRED curl capi-system-info)
+pkg_check_modules(pkgs REQUIRED libcurl capi-system-info)
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
index 6de1a8a..9ceef51 100644 (file)
  */
 #include <stdexcept>
 #include <cassert>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "audit_trail_client.h"
 #include "logging.h"
 #include "samonitor_tag.h"
 #include "base64.h"
 
+enum {
+    OBJECT_TYPE_NOOBJECT,
+    OBJECT_TYPE_PROCESS,
+    OBJECT_TYPE_FILE,
+    OBJECT_TYPE_SOCKET,
+};
 
 namespace NMD
 {
@@ -34,15 +44,18 @@ void sysCallLogCallback(audit_system_log_h handle, void* user_data)
     unsigned int syscall;
     unsigned int syscall_args[4];
     int syscall_exitcode;
-    const char* subj_name;
-    const char* subj_label;
-    const char* obj_name;
-    const char* obj_label;
-    int obj_type;
-    uid_t subj_uid, subj_euid, obj_uid, obj_euid;
-    gid_t subj_gid, subj_egid, obj_gid, obj_egid;
+    char* str_val = nullptr;
+    std::string obj_name;
+    std::string obj_label;
+    int obj_type = OBJECT_TYPE_NOOBJECT;
+    std::string obj_stype;
+    uid_t subj_uid, subj_euid, obj_uid;
+    gid_t subj_gid, subj_egid, obj_gid;
     mode_t obj_perm;
     ino_t obj_inode;
+    int sock_family;
+    struct sockaddr_un addr_un;
+    struct sockaddr_in addr_in;
     Json::Value root;
 
     if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_time(handle, &time, &ms))) {
@@ -51,8 +64,12 @@ void sysCallLogCallback(audit_system_log_h handle, void* user_data)
         LOG_E(TAG, "audit_system_log_get_time error %d", result);
     }
 
-    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_subject_name(handle, &subj_name))) {
-        root["subj"] = std::string{subj_name};
+    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_subject_name(handle, &str_val))) {
+        if (nullptr != str_val) {
+            root["subj"] = std::string{str_val};
+            free(str_val);
+            str_val = nullptr;
+        }
     } else {
         LOG_E(TAG, "audit_system_log_get_subject_name error %d", result);
     }
@@ -77,59 +94,52 @@ void sysCallLogCallback(audit_system_log_h handle, void* user_data)
         LOG_E(TAG, "audit_system_log_get_subject_pid error %d", result);
     }
 
-    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_subject_smack_label(handle, &subj_label))) {
-        root["subj_label"] = std::string{subj_label};
+    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_subject_smack_label(handle, &str_val))) {
+        if (nullptr != str_val) {
+            root["subj_label"] = std::string{str_val};
+            free(str_val);
+            str_val = nullptr;
+        }
     } else {
         LOG_E(TAG, "audit_system_log_get_subject_smack_label error %d", result);
     }
 
-    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_object_type(handle, &obj_type))) {
-        root["obj_type"] = obj_type;
-    } else {
+    if (AUDIT_TRAIL_ERROR_NONE != (result = audit_system_log_get_object_type(handle, &obj_type))) {
         LOG_E(TAG, "audit_system_log_get_object_type error %d", result);
     }
 
-    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_object_owner(handle, &obj_uid, &obj_gid))) {
-        root["obj_owner_uid"] = obj_uid;
-        root["obj_owner_gid"] = obj_gid;
-    } else {
+    if (AUDIT_TRAIL_ERROR_NONE != (result = audit_system_log_get_object_owner(handle, &obj_uid, &obj_gid))) {
         LOG_E(TAG, "audit_system_log_get_object_owner error %d", result);
     }
 
-    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_object_effective_owner(handle, &obj_euid, &obj_egid))) {
-        root["obj_owner_euid"] = obj_euid;
-        root["obj_owner_egid"] = obj_egid;
-    } else {
-        LOG_E(TAG, "audit_system_log_get_object_effective_owner error %d", result);
-    }
-
-    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_object_permission(handle, &obj_perm))) {
-        root["obj_perm"] = obj_perm;
-    } else {
+    if (AUDIT_TRAIL_ERROR_NONE != (result = audit_system_log_get_object_permission(handle, &obj_perm))) {
         LOG_E(TAG, "audit_system_log_get_object_permission error %d", result);
     }
 
-    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_object_smack_label(handle, &obj_label))) {
-        root["obj_label"] = std::string{obj_label};
+    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_object_smack_label(handle, &str_val))) {
+        if (nullptr != str_val) {
+            obj_label = str_val;
+            free(str_val);
+            str_val = nullptr;
+        }
     } else {
         LOG_E(TAG, "audit_system_log_get_object_smack_label error %d", result);
     }
 
-    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_object_name(handle, &obj_name))) {
-        root["obj"] = std::string{obj_name};
+    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_object_name(handle, &str_val))) {
+        if (nullptr != str_val) {
+            obj_name = str_val;
+            free(str_val);
+        }
     } else {
         LOG_E(TAG, "audit_system_log_get_object_name error %d", result);
     }
 
-    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_object_pid(handle, &obj_pid))) {
-        root["obj_pid"] = obj_pid;
-    } else {
+    if (AUDIT_TRAIL_ERROR_NONE != (result = audit_system_log_get_object_pid(handle, &obj_pid))) {
         LOG_E(TAG, "audit_system_log_get_object_pid error %d", result);
     }
 
-    if (AUDIT_TRAIL_ERROR_NONE == (result = audit_system_log_get_object_inode(handle, &obj_inode))) {
-        root["obj_inode"] = Json::UInt64(obj_inode);
-    } else {
+    if (AUDIT_TRAIL_ERROR_NONE != (result = audit_system_log_get_object_inode(handle, &obj_inode))) {
         LOG_E(TAG, "audit_system_log_get_object_inode error %d", result);
     }
 
@@ -156,7 +166,58 @@ void sysCallLogCallback(audit_system_log_h handle, void* user_data)
         LOG_E(TAG, "audit_system_log_get_action_exitcode error %d", result);
     }
 
+    switch(obj_type) {
+    case OBJECT_TYPE_NOOBJECT:
+        obj_stype = std::string{"no_object"};
+        break;
+    case OBJECT_TYPE_PROCESS:
+        obj_stype = std::string{"process"};
+        root["obj"] = obj_name;
+        root["obj_label"] = obj_label;
+        root["obj_pid"] = obj_pid;
+        root["obj_uid"] = obj_uid;
+        root["obj_gid"] = obj_gid;
+        break;
+    case OBJECT_TYPE_FILE:
+        obj_stype = std::string{"file"};
+        root["obj"] = obj_name;
+        root["obj_label"] = obj_label;
+        root["obj_inode"] = Json::UInt64(obj_inode);
+        root["obj_mode"] = obj_perm;
+        root["obj_uid"] = obj_uid;
+        root["obj_gid"] = obj_gid;
+        break;
+    case OBJECT_TYPE_SOCKET:
+    {
+        obj_stype = std::string{"socket"};
+        root["obj"] = obj_name;
+        root["obj_label"] = obj_label;
+        root["obj_inode"] = Json::UInt64(obj_inode);
+        root["obj_mode"] = obj_perm;
+        root["obj_uid"] = obj_uid;
+        root["obj_gid"] = obj_gid;
+
+        if (AUDIT_TRAIL_ERROR_NONE != (result = audit_system_log_get_object_sockaddr(handle, nullptr, &sock_family))) {
+            LOG_E(TAG, "audit_system_log_get_object_sockaddr error %d", result);
+            break;
+        }
+
+        if (sock_family == AF_UNIX) {
+            audit_system_log_get_object_sockaddr(handle, reinterpret_cast<struct sockaddr *>(&addr_un), &sock_family);
+            root["obj_sock_family"] = std::string{"unix"};
+            root["obj_sockpath"] = std::string{addr_un.sun_path};
+        } else if (sock_family == AF_INET) {
+            audit_system_log_get_object_sockaddr(handle, reinterpret_cast<struct sockaddr *>(&addr_in), &sock_family);
+            root["obj_sock_family"] = std::string{"inet"};
+            root["obj_sockaddr"] = std::string{inet_ntoa(addr_in.sin_addr)} + ":" + std::to_string(ntohs(addr_in.sin_port));
+        }
+    }
+    default:
+        break;
+    }
+
     if (!root.empty()) {
+        root["obj_type"] = obj_stype;
         client->m_reporter->sendReport(std::string{"syscall"}, root);
     } else {
         LOG_E(TAG, "Failed to collect system log info. Log is empty.");
@@ -172,7 +233,7 @@ void userLogCallback(audit_user_log_h handle, void* user_data)
     unsigned short ms;
     pid_t pid;
     int type;
-    const char* text = "";
+    char* text = nullptr;
     int result;
     Json::Value root;
 
@@ -195,7 +256,10 @@ void userLogCallback(audit_user_log_h handle, void* user_data)
     }
 
     if (AUDIT_TRAIL_ERROR_NONE == (result = audit_user_log_get_text(handle, &text))) {
-        root["text"] = base64_encode(text);
+        if (nullptr != text) {
+            root["text"] = base64_encode(text);
+            free(text);
+        }
     } else {
         LOG_E(TAG, "audit_trail_get_user_log_text error %d", result);
     }
index acb1ac0..cdd87f2 100644 (file)
@@ -31,20 +31,19 @@ class AuditTrailSystemLogMock: public IAuditSystemLogStub
 {
 public:
     MOCK_METHOD2(audit_system_log_get_time, int(time_t *time, unsigned short *ms));
-    MOCK_METHOD1(audit_system_log_get_subject_name, int(const char **name));
+    MOCK_METHOD1(audit_system_log_get_subject_name, int(char **name));
     MOCK_METHOD2(audit_system_log_get_subject_owner, int(uid_t *uid, gid_t *gid));
     MOCK_METHOD2(audit_system_log_get_subject_effective_owner, int(uid_t *euid, gid_t *egid));
     MOCK_METHOD1(audit_system_log_get_subject_pid, int(pid_t *pid));
-    MOCK_METHOD1(audit_system_log_get_subject_smack_label, int(const char **label));
+    MOCK_METHOD1(audit_system_log_get_subject_smack_label, int(char **label));
     MOCK_METHOD1(audit_system_log_get_object_type, int(int *type));
     MOCK_METHOD2(audit_system_log_get_object_owner, int(uid_t *uid, gid_t *gid));
-    MOCK_METHOD2(audit_system_log_get_object_effective_owner, int(uid_t *euid, gid_t *egid));
     MOCK_METHOD1(audit_system_log_get_object_permission, int(mode_t *mode));
-    MOCK_METHOD1(audit_system_log_get_object_smack_label, int(const char **label));
-    MOCK_METHOD1(audit_system_log_get_object_name, int(const char **name));
+    MOCK_METHOD1(audit_system_log_get_object_smack_label, int(char **label));
+    MOCK_METHOD1(audit_system_log_get_object_name, int(char **name));
     MOCK_METHOD1(audit_system_log_get_object_pid, int(pid_t *pid));
     MOCK_METHOD1(audit_system_log_get_object_inode, int(ino_t *inode));
-    MOCK_METHOD1(audit_system_log_object_sockaddr, int(const char **socketaddr));
+    MOCK_METHOD2(audit_system_log_get_object_sockaddr, int(struct sockaddr *addr, int *family));
     MOCK_METHOD1(audit_system_log_get_action_systemcall, int(unsigned int *systemcall));
     MOCK_METHOD1(audit_system_log_get_action_arguments, int(unsigned int (*args)[4]));
     MOCK_METHOD1(audit_system_log_get_action_exitcode, int(int *exitcode));
@@ -56,7 +55,7 @@ public:
     MOCK_METHOD2(audit_user_log_get_time, int(time_t *time, unsigned short *ms));
     MOCK_METHOD1(audit_user_log_get_pid, int(pid_t *pid));
     MOCK_METHOD1(audit_user_log_get_type, int(int *type));
-    MOCK_METHOD1(audit_user_log_get_text, int(const char **text));
+    MOCK_METHOD1(audit_user_log_get_text, int(char **text));
 };
 
 
index 82401b6..6bbf3d2 100644 (file)
@@ -41,8 +41,7 @@ int audit_system_log_get_time(audit_system_log_h handle,
     IAuditSystemLogStub* p = reinterpret_cast<IAuditSystemLogStub*>(handle);
     return p->audit_system_log_get_time(time, ms);
 }
-int audit_system_log_get_subject_name(audit_system_log_h handle,
-                                        const char **name)
+int audit_system_log_get_subject_name(audit_system_log_h handle, char **name)
 {
     IAuditSystemLogStub* p = reinterpret_cast<IAuditSystemLogStub*>(handle);
     return p->audit_system_log_get_subject_name(name);
@@ -65,7 +64,7 @@ int audit_system_log_get_subject_pid(audit_system_log_h handle, pid_t *pid)
     return p->audit_system_log_get_subject_pid(pid);
 }
 int audit_system_log_get_subject_smack_label(audit_system_log_h handle,
-                                                    const char **label)
+                                                    char **label)
 {
     IAuditSystemLogStub* p = reinterpret_cast<IAuditSystemLogStub*>(handle);
     return p->audit_system_log_get_subject_smack_label(label);
@@ -81,23 +80,17 @@ int audit_system_log_get_object_owner(audit_system_log_h handle,
     IAuditSystemLogStub* p = reinterpret_cast<IAuditSystemLogStub*>(handle);
     return p->audit_system_log_get_object_owner(uid, gid);
 }
-int audit_system_log_get_object_effective_owner(audit_system_log_h handle,
-                                                    uid_t *euid, gid_t *egid)
-{
-    IAuditSystemLogStub* p = reinterpret_cast<IAuditSystemLogStub*>(handle);
-    return p->audit_system_log_get_object_effective_owner(euid, egid);
-}
 int audit_system_log_get_object_permission(audit_system_log_h handle, mode_t *mode)
 {
     IAuditSystemLogStub* p = reinterpret_cast<IAuditSystemLogStub*>(handle);
     return p->audit_system_log_get_object_permission(mode);
 }
-int audit_system_log_get_object_smack_label(audit_system_log_h handle, const char **label)
+int audit_system_log_get_object_smack_label(audit_system_log_h handle, char **label)
 {
     IAuditSystemLogStub* p = reinterpret_cast<IAuditSystemLogStub*>(handle);
     return p->audit_system_log_get_object_smack_label(label);
 }
-int audit_system_log_get_object_name(audit_system_log_h handle, const char **name)
+int audit_system_log_get_object_name(audit_system_log_h handle, char **name)
 {
     IAuditSystemLogStub* p = reinterpret_cast<IAuditSystemLogStub*>(handle);
     return p->audit_system_log_get_object_name(name);
@@ -112,10 +105,10 @@ int audit_system_log_get_object_inode(audit_system_log_h handle, ino_t *inode)
     IAuditSystemLogStub* p = reinterpret_cast<IAuditSystemLogStub*>(handle);
     return p->audit_system_log_get_object_inode(inode);
 }
-int audit_system_log_object_sockaddr(audit_system_log_h handle, const char **socketaddr)
+int audit_system_log_get_object_sockaddr(audit_system_log_h handle, struct sockaddr *addr, int *family)
 {
     IAuditSystemLogStub* p = reinterpret_cast<IAuditSystemLogStub*>(handle);
-    return p->audit_system_log_object_sockaddr(socketaddr);
+    return p->audit_system_log_get_object_sockaddr(addr, family);
 }
 int audit_system_log_get_action_systemcall(audit_system_log_h handle, unsigned int *systemcall)
 {
@@ -172,7 +165,7 @@ int audit_user_log_get_type(audit_user_log_h handle, int *type)
     IAuditUserLogStub* p = reinterpret_cast<IAuditUserLogStub*>(handle);
     return p->audit_user_log_get_type(type);
 }
-int audit_user_log_get_text(audit_user_log_h handle, const char **text)
+int audit_user_log_get_text(audit_user_log_h handle, char **text)
 {
     IAuditUserLogStub* p = reinterpret_cast<IAuditUserLogStub*>(handle);
     return p->audit_user_log_get_text(text);
index 5610ebb..2b1e090 100644 (file)
@@ -30,20 +30,19 @@ class IAuditSystemLogStub
 public:
     virtual ~IAuditSystemLogStub() = default;
     virtual int audit_system_log_get_time(time_t *time, unsigned short *ms) = 0;
-    virtual int audit_system_log_get_subject_name(const char **name) = 0;
+    virtual int audit_system_log_get_subject_name(char **name) = 0;
     virtual int audit_system_log_get_subject_owner(uid_t *uid, gid_t *gid) = 0;
     virtual int audit_system_log_get_subject_effective_owner(uid_t *euid, gid_t *egid) = 0;
     virtual int audit_system_log_get_subject_pid(pid_t *pid) = 0;
-    virtual int audit_system_log_get_subject_smack_label(const char **label) = 0;
+    virtual int audit_system_log_get_subject_smack_label(char **label) = 0;
     virtual int audit_system_log_get_object_type(int *type) = 0;
     virtual int audit_system_log_get_object_owner(uid_t *uid, gid_t *gid) = 0;
-    virtual int audit_system_log_get_object_effective_owner(uid_t *euid, gid_t *egid) = 0;
     virtual int audit_system_log_get_object_permission(mode_t *mode) = 0;
-    virtual int audit_system_log_get_object_smack_label(const char **label) = 0;
-    virtual int audit_system_log_get_object_name(const char **name) = 0;
+    virtual int audit_system_log_get_object_smack_label(char **label) = 0;
+    virtual int audit_system_log_get_object_name(char **name) = 0;
     virtual int audit_system_log_get_object_pid(pid_t *pid) = 0;
     virtual int audit_system_log_get_object_inode(ino_t *inode) = 0;
-    virtual int audit_system_log_object_sockaddr(const char **socketaddr) = 0;
+    virtual int audit_system_log_get_object_sockaddr(struct sockaddr *addr, int *family) = 0;
     virtual int audit_system_log_get_action_systemcall(unsigned int *systemcall) = 0;
     virtual int audit_system_log_get_action_arguments(unsigned int (*args)[4]) = 0;
     virtual int audit_system_log_get_action_exitcode(int *exitcode) = 0;
@@ -56,7 +55,7 @@ public:
     virtual int audit_user_log_get_time(time_t *time, unsigned short *ms) = 0;
     virtual int audit_user_log_get_pid(pid_t *pid) = 0;
     virtual int audit_user_log_get_type(int *type) = 0;
-    virtual int audit_user_log_get_text(const char **text) = 0;
+    virtual int audit_user_log_get_text(char **text) = 0;
 };
 
 #endif // AUDITTRAILSTUB_H
index 74ceb48..a28c34e 100644 (file)
@@ -1,7 +1,11 @@
 #include "audit_trail_client.h"
 #include "audit_trail_mock.h"
 #include "ireportermock.h"
-#include <iostream>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <cstring>
 
 using namespace NMD;
 using ::testing::Return;
@@ -17,6 +21,14 @@ using ::testing::WithArgs;
 
 namespace
 {
+
+enum {
+    OBJECT_TYPE_NOOBJECT,
+    OBJECT_TYPE_PROCESS,
+    OBJECT_TYPE_FILE,
+    OBJECT_TYPE_SOCKET,
+};
+
 const int SYSCALL_CB_ID = 1;
 const int USER_CB_ID = 2;
 
@@ -29,7 +41,7 @@ const uid_t TEST_SYS_SUBJ_EUID = 3;
 const gid_t TEST_SYS_SUBJ_EGID = 4;
 const pid_t TEST_SYS_SUBJ_PID = 5;
 const char* TEST_SYS_SUBJ_LABEL = "subj_label";
-const int TEST_SYS_OBJ_TYPE = 6;
+const int TEST_SYS_OBJ_TYPE = OBJECT_TYPE_SOCKET;
 const uid_t TEST_SYS_OBJ_UID = 7;
 const gid_t TEST_SYS_OBJ_GID = 8;
 const uid_t TEST_SYS_OBJ_EUID = 9;
@@ -48,7 +60,7 @@ const unsigned short TEST_USER_MS = 20;
 const pid_t TEST_USER_PID = 21;
 const int TEST_USER_TYPE = 22;
 const char* TEST_USER_TEXT = "user-text";
-
+const char* TEST_SOCKADDR = "11.22.33.44";
 }
 
 ACTION_P(invokeCallbackWith, h) { arg0(h, arg1); }
@@ -60,6 +72,11 @@ void argsAssign(unsigned int (*args)[4])
     }
 }
 
+ACTION_P2(saddrAssign, p1, p2) { \
+    if (nullptr != arg0) memcpy(arg0, p1, sizeof(struct sockaddr)); \
+    *arg1 = p2;\
+}
+
 /**
  * @brief TEST for auditing usecase
  * 1. Create objects and mocks
@@ -75,6 +92,10 @@ TEST(Test_AuditTrailClient, start_auditing)
     AuditTrailUserLogMock userLog;
 
     NetworkManager::IReporterMock reporter;
+    struct sockaddr_in saddr;
+    saddr.sin_family = AF_INET;
+    saddr.sin_port = 80;
+    inet_aton(TEST_SOCKADDR, &saddr.sin_addr);
 
     EXPECT_CALL(reporter, sendReport(Eq(std::string{"syscall"}), _)).Times(1);
     EXPECT_CALL(reporter, sendReport(Eq(std::string{"user"}), _)).Times(1);
@@ -103,7 +124,7 @@ TEST(Test_AuditTrailClient, start_auditing)
     EXPECT_CALL(sysLog, audit_system_log_get_subject_name(_))
         .WillOnce(
             DoAll(
-                SetArgPointee<0>(TEST_SYS_SUBJ_NAME),
+                SetArgPointee<0>(strdup(TEST_SYS_SUBJ_NAME)),
                 Return(AUDIT_TRAIL_ERROR_NONE)
             )
         );
@@ -133,7 +154,7 @@ TEST(Test_AuditTrailClient, start_auditing)
     EXPECT_CALL(sysLog, audit_system_log_get_subject_smack_label(_))
         .WillOnce(
             DoAll(
-                SetArgPointee<0>(TEST_SYS_SUBJ_LABEL),
+                SetArgPointee<0>(strdup(TEST_SYS_SUBJ_LABEL)),
                 Return(AUDIT_TRAIL_ERROR_NONE)
             )
         );
@@ -152,14 +173,6 @@ TEST(Test_AuditTrailClient, start_auditing)
                 Return(AUDIT_TRAIL_ERROR_NONE)
             )
         );
-    EXPECT_CALL(sysLog, audit_system_log_get_object_effective_owner(_, _))
-        .WillOnce(
-            DoAll(
-                SetArgPointee<0>(TEST_SYS_OBJ_EUID),
-                SetArgPointee<1>(TEST_SYS_OBJ_EGID),
-                Return(AUDIT_TRAIL_ERROR_NONE)
-            )
-        );
     EXPECT_CALL(sysLog, audit_system_log_get_object_permission(_))
         .WillOnce(
             DoAll(
@@ -170,14 +183,14 @@ TEST(Test_AuditTrailClient, start_auditing)
     EXPECT_CALL(sysLog, audit_system_log_get_object_smack_label(_))
         .WillOnce(
             DoAll(
-                SetArgPointee<0>(TEST_SYS_OBJ_LABEL),
+                SetArgPointee<0>(strdup(TEST_SYS_OBJ_LABEL)),
                 Return(AUDIT_TRAIL_ERROR_NONE)
             )
         );
     EXPECT_CALL(sysLog, audit_system_log_get_object_name(_))
         .WillOnce(
             DoAll(
-                SetArgPointee<0>(TEST_SYS_OBJ_NAME),
+                SetArgPointee<0>(strdup(TEST_SYS_OBJ_NAME)),
                 Return(AUDIT_TRAIL_ERROR_NONE)
             )
         );
@@ -209,6 +222,13 @@ TEST(Test_AuditTrailClient, start_auditing)
                 Return(AUDIT_TRAIL_ERROR_NONE)
             )
         );
+    EXPECT_CALL(sysLog, audit_system_log_get_object_sockaddr(_,_))
+        .WillRepeatedly(
+            DoAll(
+                saddrAssign(&saddr, AF_INET),
+                Return(AUDIT_TRAIL_ERROR_NONE)
+            )
+        );
     EXPECT_CALL(sysLog, audit_system_log_get_action_exitcode(_))
         .WillOnce(
             DoAll(
@@ -241,7 +261,7 @@ TEST(Test_AuditTrailClient, start_auditing)
     EXPECT_CALL(userLog, audit_user_log_get_text(_))
         .WillOnce(
             DoAll(
-                SetArgPointee<0>(TEST_USER_TEXT),
+                SetArgPointee<0>(strdup(TEST_USER_TEXT)),
                 Return(AUDIT_TRAIL_ERROR_NONE)
             )
         );
@@ -301,8 +321,6 @@ TEST(Test_AuditTrailClient, collect_log_info_fail_simulation)
         .WillOnce(Return(AUDIT_TRAIL_ERROR_NO_DATA));
     EXPECT_CALL(sysLog, audit_system_log_get_object_owner(_, _))
         .WillOnce(Return(AUDIT_TRAIL_ERROR_NO_DATA));
-    EXPECT_CALL(sysLog, audit_system_log_get_object_effective_owner(_, _))
-        .WillOnce(Return(AUDIT_TRAIL_ERROR_NO_DATA));
     EXPECT_CALL(sysLog, audit_system_log_get_object_permission(_))
         .WillOnce(Return(AUDIT_TRAIL_ERROR_NO_DATA));
     EXPECT_CALL(sysLog, audit_system_log_get_object_smack_label(_))
index 2a52060..1b1079e 100644 (file)
@@ -19,7 +19,7 @@ using namespace NetworkManager;
  * 3. Search for owned devices
  * 4. Iterate thoughout the list and print devices info
  */
-TEST(Test_REST, test_get)
+TEST(Test_REST, DISABLED_test_get)
 {
     try {
         RestRequest request("http://106.125.46.139:11000/swagger-ui.html#/rest-device");