From bc33e7f019bfd4340a357075484ca155722bf97a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=A4rkl?= Date: Wed, 8 Jan 2020 10:50:00 +0100 Subject: [PATCH 1/3] Add pj_null() and pj_knull() --- libr/include/r_util/pj.h | 2 ++ libr/util/pj.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/libr/include/r_util/pj.h b/libr/include/r_util/pj.h index ab37e43b6adbc..81a032fbe2401 100644 --- a/libr/include/r_util/pj.h +++ b/libr/include/r_util/pj.h @@ -28,6 +28,7 @@ R_API PJ *pj_o(PJ *j); R_API PJ *pj_a(PJ *j); /* keys, values */ R_API PJ *pj_k(PJ *j, const char *k); +R_API PJ *pj_knull(PJ *j, const char *k); R_API PJ *pj_kn(PJ *j, const char *k, ut64 n); R_API PJ *pj_kN(PJ *j, const char *k, st64 n); R_API PJ *pj_ks(PJ *j, const char *k, const char *v); @@ -35,6 +36,7 @@ R_API PJ *pj_ki(PJ *j, const char *k, int d); R_API PJ *pj_kd(PJ *j, const char *k, double d); R_API PJ *pj_kf(PJ *j, const char *k, float d); R_API PJ *pj_kb(PJ *j, const char *k, bool v); +R_API PJ *pj_null(PJ *j); R_API PJ *pj_b(PJ *j, bool v); R_API PJ *pj_s(PJ *j, const char *k); R_API PJ *pj_n(PJ *j, ut64 n); diff --git a/libr/util/pj.c b/libr/util/pj.c index 3ffa7f2b365a8..7680b67b36360 100644 --- a/libr/util/pj.c +++ b/libr/util/pj.c @@ -102,6 +102,13 @@ R_API PJ *pj_k(PJ *j, const char *k) { return j; } +R_API PJ *pj_knull(PJ *j, const char *k) { + r_return_val_if_fail (j && k, j); + pj_k (j, k); + pj_null (j); + return j; +} + R_API PJ *pj_kn(PJ *j, const char *k, ut64 n) { r_return_val_if_fail (j && k, j); pj_k (j, k); @@ -152,6 +159,12 @@ R_API PJ *pj_kb(PJ *j, const char *k, bool v) { return j; } +R_API PJ *pj_null(PJ *j) { + r_return_val_if_fail (j, j); + pj_raw (j, "null"); + return j; +} + R_API PJ *pj_b(PJ *j, bool v) { r_return_val_if_fail (j, j); pj_comma (j); From 8eec255ba7435f697248a5c9f3dbd72267160f94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=A4rkl?= Date: Wed, 8 Jan 2020 10:51:13 +0100 Subject: [PATCH 2/3] Print reloc name as null in json if not available --- libr/core/cbin.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libr/core/cbin.c b/libr/core/cbin.c index b5cade32da612..680e1454531aa 100644 --- a/libr/core/cbin.c +++ b/libr/core/cbin.c @@ -1616,7 +1616,11 @@ static int bin_relocs(RCore *r, int mode, int va) { } // check if name is available - pj_ks (pj, "name", (relname && strcmp (relname, "")) ? relname : "N/A"); + if (relname && *relname) { + pj_ks (pj, "name", relname); + } else { + pj_knull (pj, "name"); + } pj_ks (pj, "demname", mn ? mn : ""); pj_ks (pj, "type", bin_reloc_type_name (reloc)); pj_kn (pj, "vaddr", reloc->vaddr); From afb70c142dd0744da685888c85a1d0d3874df9dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=A4rkl?= Date: Wed, 8 Jan 2020 17:51:14 +0100 Subject: [PATCH 3/3] Omit reloc name in json --- libr/core/cbin.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/libr/core/cbin.c b/libr/core/cbin.c index 680e1454531aa..f0e798ad4a99e 100644 --- a/libr/core/cbin.c +++ b/libr/core/cbin.c @@ -1618,8 +1618,6 @@ static int bin_relocs(RCore *r, int mode, int va) { // check if name is available if (relname && *relname) { pj_ks (pj, "name", relname); - } else { - pj_knull (pj, "name"); } pj_ks (pj, "demname", mn ? mn : ""); pj_ks (pj, "type", bin_reloc_type_name (reloc));