Blob Blame History Raw
diff --git a/u2f-server/core.c b/u2f-server/core.c
index 41af808..da1b286 100644
--- a/u2f-server/core.c
+++ b/u2f-server/core.c
@@ -399,9 +399,9 @@ static int registration_challenge_json(const char *challenge,
   if (json_output == NULL)
     goto done;
 
-  json_object_object_add(json_output, "challenge", json_challenge);
-  json_object_object_add(json_output, "version", json_version);
-  json_object_object_add(json_output, "appId", json_appid);
+  json_object_object_add(json_output, "challenge", json_object_get(json_challenge));
+  json_object_object_add(json_output, "version", json_object_get(json_version));
+  json_object_object_add(json_output, "appId", json_object_get(json_appid));
 
   json_string = json_object_to_json_string(json_output);
 
@@ -413,13 +413,10 @@ static int registration_challenge_json(const char *challenge,
     rc = U2FS_OK;
 
 done:
-  if (json_output) {
     json_object_put(json_output);
-  } else {
     json_object_put(json_challenge);
     json_object_put(json_version);
     json_object_put(json_appid);
-  }
 
   return rc;
 }
@@ -976,10 +973,10 @@ static int authentication_challenge_json(const char *challenge,
   if (json_output == NULL)
     goto done;
 
-  json_object_object_add(json_output, "keyHandle", json_key);
-  json_object_object_add(json_output, "version", json_version);
-  json_object_object_add(json_output, "challenge", json_challenge);
-  json_object_object_add(json_output, "appId", json_appid);
+  json_object_object_add(json_output, "keyHandle", json_object_get(json_key));
+  json_object_object_add(json_output, "version", json_object_get(json_version));
+  json_object_object_add(json_output, "challenge", json_object_get(json_challenge));
+  json_object_object_add(json_output, "appId", json_object_get(json_appid));
 
   json_string = json_object_to_json_string(json_output);
 
@@ -991,14 +988,11 @@ static int authentication_challenge_json(const char *challenge,
     rc = U2FS_OK;
 
 done:
-  if (json_output) {
     json_object_put(json_output);
-  } else {
     json_object_put(json_challenge);
     json_object_put(json_key);
     json_object_put(json_version);
     json_object_put(json_appid);
-  }
 
   return rc;
 }