Fix possible uninitialised value dereference if jq_init() fails
If jq_init() fails, goto out would try to free input_state which is uninitialised. I initialised input_state to NULL to fix the problem. Ref: https://github.com/jqlang/jq/pull/2934#discussion_r1367795641 Reported-By: Klemens Nanni <kn@openbsd.org>
This commit is contained in:
1 parent
7ab117a483
commit
e85e358233
1 file changed
+3
-2
+3
-2
@@ -310,6 +310,7 @@ int umain(int argc, char* argv[]) {
|
||||
int main(int argc, char* argv[]) {
|
||||
#endif
|
||||
jq_state *jq = NULL;
|
||||
jq_util_input_state *input_state = NULL;
|
||||
int ret = JQ_OK_NO_OUTPUT;
|
||||
int compiled = 0;
|
||||
int parser_flags = 0;
|
||||
@@ -344,7 +345,7 @@ int main(int argc, char* argv[]) {
|
||||
|
||||
jq = jq_init();
|
||||
if (jq == NULL) {
|
||||
perror("malloc");
|
||||
perror("jq_init");
|
||||
ret = JQ_ERROR_SYSTEM;
|
||||
goto out;
|
||||
}
|
||||
@@ -352,7 +353,7 @@ int main(int argc, char* argv[]) {
|
||||
int dumpopts = JV_PRINT_INDENT_FLAGS(2);
|
||||
const char* program = 0;
|
||||
|
||||
jq_util_input_state *input_state = jq_util_input_init(NULL, NULL); // XXX add err_cb
|
||||
input_state = jq_util_input_init(NULL, NULL); // XXX add err_cb
|
||||
|
||||
int further_args_are_strings = 0;
|
||||
int further_args_are_json = 0;
|
||||
|
||||
Reference in new issue
Block a user