mirror of
https://gitlab.com/cryptsetup/cryptsetup.git
synced 2025-12-13 03:40:05 +01:00
Use json_object_object_add_ex if defined.
The json-c lib changed json_object_object_add() prototype to return int, this is backward incompatible.
This commit is contained in:
@@ -352,6 +352,7 @@ LIBS=$saved_LIBS
|
|||||||
|
|
||||||
dnl Check for JSON-C used in LUKS2
|
dnl Check for JSON-C used in LUKS2
|
||||||
PKG_CHECK_MODULES([JSON_C], [json-c])
|
PKG_CHECK_MODULES([JSON_C], [json-c])
|
||||||
|
AC_CHECK_DECLS([json_object_object_add_ex], [], [], [#include <json-c/json.h>])
|
||||||
|
|
||||||
dnl Crypto backend configuration.
|
dnl Crypto backend configuration.
|
||||||
AC_ARG_WITH([crypto_backend],
|
AC_ARG_WITH([crypto_backend],
|
||||||
|
|||||||
@@ -1963,24 +1963,24 @@ void LUKS2_hdr_repair(struct crypt_device *cd, json_object *hdr_jobj)
|
|||||||
|
|
||||||
void json_object_object_del_by_uint(json_object *jobj, unsigned key)
|
void json_object_object_del_by_uint(json_object *jobj, unsigned key)
|
||||||
{
|
{
|
||||||
int r;
|
char key_name[16];
|
||||||
char key_name[4];
|
|
||||||
|
|
||||||
r = snprintf(key_name, sizeof(key_name), "%u", key);
|
if (snprintf(key_name, sizeof(key_name), "%u", key) < 1)
|
||||||
if (r >= 0 && (size_t)r < sizeof(key_name))
|
return;
|
||||||
json_object_object_del(jobj, key_name);
|
json_object_object_del(jobj, key_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
int json_object_object_add_by_uint(json_object *jobj, unsigned key, json_object *jobj_val)
|
int json_object_object_add_by_uint(json_object *jobj, unsigned key, json_object *jobj_val)
|
||||||
{
|
{
|
||||||
int r;
|
char key_name[16];
|
||||||
char key_name[4];
|
|
||||||
|
|
||||||
r = snprintf(key_name, sizeof(key_name), "%u", key);
|
if (snprintf(key_name, sizeof(key_name), "%u", key) < 1)
|
||||||
if (r < 0 || (size_t)r >= sizeof(key_name))
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
json_object_object_add(jobj, key_name, jobj_val);
|
#if HAVE_DECL_JSON_OBJECT_OBJECT_ADD_EX
|
||||||
|
return json_object_object_add_ex(jobj, key_name, jobj_val, 0) ? -ENOMEM : 0;
|
||||||
return 0;
|
#else
|
||||||
|
json_object_object_add(jobj, key_name, jobj_val);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user