STRCPY/STRNCPY doesn't copy bytes after 0x00.
diff -r dd44a527c2bd src/eval.c
--- a/src/eval.c Sun Apr 06 21:34:04 2014 +0200
+++ b/src/eval.c Wed Apr 09 19:53:47 2014 +0900
@@ -18319,7 +18319,7 @@
char_u *s = NULL;
char_u *start;
char_u *end;
- char_u *p;
+ char_u *p, *t;
int i;
res = get_cmd_output(get_tv_string(&argvars[0]), infile,
@@ -18337,13 +18337,13 @@
for (end = start; i < len && *end != NL; ++end)
++i;
- s = vim_strnsave(start, (int)(end - start));
+ s = alloc((unsigned)(end - start + 1));
if (s == NULL)
goto errret;
- for (p = s, end = s + (end - start); p < end; ++p)
- if (*p == NUL)
- *p = NL;
+ for (p = s, end = s + (end - start), t = start; p < end; ++p, ++t)
+ *p = *t == NUL ? NL : *t;
+ *p= NUL;
li = listitem_alloc();
if (li == NULL)
@@ -18356,6 +18356,7 @@
list_append(list, li);
}
+ ++list->lv_refcount;
rettv->v_type = VAR_LIST;
rettv->vval.v_list = list;
list = NULL;
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.