[sr-dev] git:master:c48e409b: jsonrpcs: use json null value for c null char* or str*

Daniel-Constantin Mierla miconda at gmail.com
Mon Feb 22 12:52:43 CET 2021


Module: kamailio
Branch: master
Commit: c48e409b741821fa470788b3bca0ead32e4d6efc
URL: https://github.com/kamailio/kamailio/commit/c48e409b741821fa470788b3bca0ead32e4d6efc

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2021-02-22T11:29:39+01:00

jsonrpcs: use json null value for c null char* or str*

---

Modified: src/modules/jsonrpcs/jsonrpcs_mod.c

---

Diff:  https://github.com/kamailio/kamailio/commit/c48e409b741821fa470788b3bca0ead32e4d6efc.diff
Patch: https://github.com/kamailio/kamailio/commit/c48e409b741821fa470788b3bca0ead32e4d6efc.patch

---

diff --git a/src/modules/jsonrpcs/jsonrpcs_mod.c b/src/modules/jsonrpcs/jsonrpcs_mod.c
index c3b8003046..a5a92e1537 100644
--- a/src/modules/jsonrpcs/jsonrpcs_mod.c
+++ b/src/modules/jsonrpcs/jsonrpcs_mod.c
@@ -472,6 +472,7 @@ static srjson_t* jsonrpc_print_value(jsonrpc_ctx_t* ctx, char fmt, va_list* ap)
 	time_t dt;
 	struct tm t;
 	str *sp;
+	char *cp;
 
 	switch(fmt) {
 	case 'd':
@@ -497,11 +498,20 @@ static srjson_t* jsonrpc_print_value(jsonrpc_ctx_t* ctx, char fmt, va_list* ap)
 		nj = srjson_CreateString(ctx->jrpl, buf);
 		break;
 	case 's':
-		nj = srjson_CreateString(ctx->jrpl, va_arg(*ap, char*));
+		cp = va_arg(*ap, char*);
+		if(cp!=NULL) {
+			nj = srjson_CreateString(ctx->jrpl, cp);
+		} else {
+			nj = srjson_CreateNull(ctx->jrpl);
+		}
 		break;
 	case 'S':
 		sp = va_arg(*ap, str*);
-		nj = srjson_CreateStr(ctx->jrpl, sp->s, sp->len);
+		if(sp!=NULL && sp->s!=NULL) {
+			nj = srjson_CreateStr(ctx->jrpl, sp->s, sp->len);
+		} else {
+			nj = srjson_CreateNull(ctx->jrpl);
+		}
 		break;
 	default:
 		LM_ERR("Invalid formatting character [%c]\n", fmt);




More information about the sr-dev mailing list