aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/main.c
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-07-04 16:47:07 +0300
committerZyX <kp-pav@yandex.ru>2017-07-04 18:37:01 +0300
commit94bd0f9915b0515fde449e3ee003ecbff3ad1b42 (patch)
tree3a30bd1723bb82a722b8fd119fb10495806b7092 /src/nvim/main.c
parent1f05ec95c04f7fd300ce3696b40f09e057d4fb06 (diff)
downloadrneovim-94bd0f9915b0515fde449e3ee003ecbff3ad1b42.tar.gz
rneovim-94bd0f9915b0515fde449e3ee003ecbff3ad1b42.tar.bz2
rneovim-94bd0f9915b0515fde449e3ee003ecbff3ad1b42.zip
main: Fix V522: potential NULL dereference
It is useless to use sbuffer here and print that to stdout, just using “fbuffer” instead.
Diffstat (limited to 'src/nvim/main.c')
-rw-r--r--src/nvim/main.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 19a661d7db..5c0cda978f 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -766,16 +766,18 @@ static void command_line_scan(mparm_T *parmp)
version();
mch_exit(0);
} else if (STRICMP(argv[0] + argv_idx, "api-info") == 0) {
- msgpack_sbuffer* b = msgpack_sbuffer_new();
- msgpack_packer* p = msgpack_packer_new(b, msgpack_sbuffer_write);
- Object md = DICTIONARY_OBJ(api_metadata());
- msgpack_rpc_from_object(md, p);
+ msgpack_packer *p = msgpack_packer_new(stdout,
+ msgpack_fbuffer_write);
- for (size_t i = 0; i < b->size; i++) {
- putchar(b->data[i]);
+ if (p == NULL) {
+ emsgf(_(e_outofmem));
}
+ Object md = DICTIONARY_OBJ(api_metadata());
+ msgpack_rpc_from_object(md, p);
+
msgpack_packer_free(p);
+ file_close(&fp, false);
mch_exit(0);
} else if (STRICMP(argv[0] + argv_idx, "headless") == 0) {
parmp->headless = true;