From f37216b1647d1960dac8fe4fefe43f343019ba30 Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Fri, 19 Aug 2022 11:58:39 +0200 Subject: Exports: Ensure valid JSON when encountering a marshal error --- exports/exports.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/exports/exports.go b/exports/exports.go index 7f842ec..e0e8464 100644 --- a/exports/exports.go +++ b/exports/exports.go @@ -34,8 +34,15 @@ func StateCallback(name string, old_state eduvpn.VPNStateID, new_state eduvpn.VP name_c := C.CString(name) oldState_c := C.int(old_state) newState_c := C.int(new_state) - data_json, _ := json.Marshal(data) - data_c := C.CString(string(data_json)) + data_json, jsonErr := json.Marshal(data) + var dataJsonString string + if jsonErr != nil { + // TODO: How to handle error further? Log? + dataJsonString = "{}" + } else { + dataJsonString = string(data_json) + } + data_c := C.CString(dataJsonString) C.call_callback(P_StateCallback, name_c, oldState_c, newState_c, data_c) C.free(unsafe.Pointer(name_c)) C.free(unsafe.Pointer(data_c)) -- cgit v1.2.3