#include <string.h>
#include <jansson.h>
#include "jansson_private.h"
+#include "utf.h"
typedef struct {
const char *start;
goto error;
}
+ if(!utf8_check_string(key, -1)) {
+ set_error(s, "<args>", "Invalid UTF-8 in object key");
+ goto error;
+ }
+
next_token(s);
value = pack(s, ap);
if(!value)
goto error;
- if(json_object_set_new(object, key, value)) {
+ if(json_object_set_new_nocheck(object, key, value)) {
set_error(s, "<internal>", "Unable to add key \"%s\"", key);
goto error;
}
set_error(s, "<args>", "NULL string argument");
return NULL;
}
- return json_string(str);
+ if(!utf8_check_string(str, -1)) {
+ set_error(s, "<args>", "Invalid UTF-8 string");
+ return NULL;
+ }
+ return json_string_nocheck(str);
}
case 'n': /* null */