]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
audit_logging: Simplify json_add_stringn() with json_stringn()
authorVolker Lendecke <vl@samba.org>
Thu, 10 Aug 2023 13:05:22 +0000 (15:05 +0200)
committerJeremy Allison <jra@samba.org>
Mon, 14 Aug 2023 20:51:11 +0000 (20:51 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Mon Aug 14 20:51:11 UTC 2023 on atb-devel-224

lib/audit_logging/audit_logging.c
lib/audit_logging/tests/audit_logging_error_test.c
lib/audit_logging/wscript_build

index 496e347659c1423204b286d49740001af8f78643..8ed15edffb6acdb1ea115fd03dd0373e6e3f8889 100644 (file)
@@ -644,13 +644,7 @@ int json_add_stringn(struct json_object *object,
        }
 
        if (value != NULL && len > 0) {
-               json_t *string = NULL;
-               char buffer[len+1];
-
-               strncpy(buffer, value, len);
-               buffer[len] = '\0';
-
-               string = json_string(buffer);
+               json_t *string = json_stringn(value, len);
                if (string == NULL) {
                        DBG_ERR("Unable to add string [%s], "
                                "could not create string object\n",
index a7bea9d05321a90902c11544bbc082a3ba4aa8f3..12a81ff018df32bca89ee732a4d4ba9ae7937ae7 100644 (file)
@@ -118,6 +118,21 @@ json_t *__wrap_json_string(const char *value)
        return __real_json_string(value);
 }
 
+/*
+ * cmocka wrappers for json_stringn
+ */
+json_t *__wrap_json_stringn(const char *value, size_t len);
+json_t *__real_json_stringn(const char *value, size_t len);
+json_t *__wrap_json_stringn(const char *value, size_t len)
+{
+
+       bool fail = (bool)mock();
+       if (fail) {
+               return NULL;
+       }
+       return __real_json_stringn(value, len);
+}
+
 /*
  * cmocka wrappers for json_dumps
  */
@@ -510,7 +525,7 @@ static void test_json_add_stringn(_UNUSED_ void **state)
        /*
         * Test json string failure
         */
-       will_return(__wrap_json_string, true);
+       will_return(__wrap_json_stringn, true);
        rc = json_add_stringn(&object, "name", "value", 3);
 
        assert_false(json_is_invalid(&object));
@@ -519,7 +534,7 @@ static void test_json_add_stringn(_UNUSED_ void **state)
        /*
         * Test json object set new failure
         */
-       will_return(__wrap_json_string, false);
+       will_return(__wrap_json_stringn, false);
        will_return(__wrap_json_object_set_new, JANSSON_FAILURE);
        rc = json_add_stringn(&object, "name", "value", 3);
 
index 3d530975ac6ffd44f4616418f7ba6a17ec072e42..90c48eedffb1a38e911e82e711cd47fe69c29d49 100644 (file)
@@ -47,6 +47,7 @@ if bld.AD_DC_BUILD_IS_ENABLED():
             -Wl,--wrap,json_array_extend
             -Wl,--wrap,json_object
             -Wl,--wrap,json_string
+            -Wl,--wrap,json_stringn
             -Wl,--wrap,json_integer
             -Wl,--wrap,json_array
             -Wl,--wrap,json_dumps