diff options
Diffstat (limited to 'data/vim/patches/8.1.0642')
-rw-r--r-- | data/vim/patches/8.1.0642 | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/data/vim/patches/8.1.0642 b/data/vim/patches/8.1.0642 deleted file mode 100644 index 40f7adc8f..000000000 --- a/data/vim/patches/8.1.0642 +++ /dev/null @@ -1,164 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.0642 -Fcc: outbox -From: Bram Moolenaar <Bram@moolenaar.net> -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 8.1.0642 -Problem: swapinfo() leaks memory. (Christian Brabandt) -Solution: Avoid allocating the strings twice. -Files: src/memline.c, src/dict.c, src/proto/dict.pro - - -*** ../vim-8.1.0641/src/memline.c 2018-12-25 23:15:41.795966567 +0100 ---- src/memline.c 2018-12-26 22:51:14.081259880 +0100 -*************** -*** 2055,2075 **** - if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0)) - { - if (ml_check_b0_id(&b0) == FAIL) -! dict_add_string(d, "error", -! vim_strsave((char_u *)"Not a swap file")); - else if (b0_magic_wrong(&b0)) -! dict_add_string(d, "error", -! vim_strsave((char_u *)"Magic number mismatch")); - else - { - /* we have swap information */ -! dict_add_string(d, "version", vim_strnsave(b0.b0_version, 10)); -! dict_add_string(d, "user", -! vim_strnsave(b0.b0_uname, B0_UNAME_SIZE)); -! dict_add_string(d, "host", -! vim_strnsave(b0.b0_hname, B0_HNAME_SIZE)); -! dict_add_string(d, "fname", -! vim_strnsave(b0.b0_fname, B0_FNAME_SIZE_ORG)); - - dict_add_number(d, "pid", char_to_long(b0.b0_pid)); - dict_add_number(d, "mtime", char_to_long(b0.b0_mtime)); ---- 2055,2070 ---- - if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0)) - { - if (ml_check_b0_id(&b0) == FAIL) -! dict_add_string(d, "error", (char_u *)"Not a swap file"); - else if (b0_magic_wrong(&b0)) -! dict_add_string(d, "error", (char_u *)"Magic number mismatch"); - else - { - /* we have swap information */ -! dict_add_string_len(d, "version", b0.b0_version, 10); -! dict_add_string_len(d, "user", b0.b0_uname, B0_UNAME_SIZE); -! dict_add_string_len(d, "host", b0.b0_hname, B0_HNAME_SIZE); -! dict_add_string_len(d, "fname", b0.b0_fname, B0_FNAME_SIZE_ORG); - - dict_add_number(d, "pid", char_to_long(b0.b0_pid)); - dict_add_number(d, "mtime", char_to_long(b0.b0_mtime)); -*************** -*** 2080,2091 **** - } - } - else -! dict_add_string(d, "error", -! vim_strsave((char_u *)"Cannot read file")); - close(fd); - } - else -! dict_add_string(d, "error", vim_strsave((char_u *)"Cannot open file")); - } - #endif - ---- 2075,2085 ---- - } - } - else -! dict_add_string(d, "error", (char_u *)"Cannot read file"); - close(fd); - } - else -! dict_add_string(d, "error", (char_u *)"Cannot open file"); - } - #endif - -*** ../vim-8.1.0641/src/dict.c 2018-12-21 16:04:16.312437516 +0100 ---- src/dict.c 2018-12-26 22:46:22.175314033 +0100 -*************** -*** 370,382 **** - int - dict_add_string(dict_T *d, char *key, char_u *str) - { - dictitem_T *item; - - item = dictitem_alloc((char_u *)key); - if (item == NULL) - return FAIL; - item->di_tv.v_type = VAR_STRING; -! item->di_tv.vval.v_string = str != NULL ? vim_strsave(str) : NULL; - if (dict_add(d, item) == FAIL) - { - dictitem_free(item); ---- 370,402 ---- - int - dict_add_string(dict_T *d, char *key, char_u *str) - { -+ return dict_add_string_len(d, key, str, -1); -+ } -+ -+ /* -+ * Add a string entry to dictionary "d". -+ * "str" will be copied to allocated memory. -+ * When "len" is -1 use the whole string, otherwise only this many bytes. -+ * Returns FAIL when out of memory and when key already exists. -+ */ -+ int -+ dict_add_string_len(dict_T *d, char *key, char_u *str, int len) -+ { - dictitem_T *item; -+ char_u *val = NULL; - - item = dictitem_alloc((char_u *)key); - if (item == NULL) - return FAIL; - item->di_tv.v_type = VAR_STRING; -! if (str != NULL) -! { -! if (len == -1) -! val = vim_strsave(str); -! else -! val = vim_strnsave(str, len); -! } -! item->di_tv.vval.v_string = val; - if (dict_add(d, item) == FAIL) - { - dictitem_free(item); -*** ../vim-8.1.0641/src/proto/dict.pro 2018-12-14 15:38:28.323597695 +0100 ---- src/proto/dict.pro 2018-12-26 22:46:26.863281096 +0100 -*************** -*** 15,20 **** ---- 15,21 ---- - int dict_add(dict_T *d, dictitem_T *item); - int dict_add_number(dict_T *d, char *key, varnumber_T nr); - int dict_add_string(dict_T *d, char *key, char_u *str); -+ int dict_add_string_len(dict_T *d, char *key, char_u *str, int len); - int dict_add_list(dict_T *d, char *key, list_T *list); - int dict_add_dict(dict_T *d, char *key, dict_T *dict); - long dict_len(dict_T *d); -*** ../vim-8.1.0641/src/version.c 2018-12-26 22:04:35.494546386 +0100 ---- src/version.c 2018-12-26 22:56:06.859194439 +0100 -*************** -*** 801,802 **** ---- 801,804 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 642, - /**/ - --- -"I simultaneously try to keep my head in the clouds and my feet on the -ground. Sometimes it's a stretch, though." -- Larry Wall - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ an exciting new programming language -- http://www.Zimbu.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |