mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
updated for version 7.3.1064
Problem: Python: insufficient error checking. Solution: Python patch 23. (ZyX)
This commit is contained in:
@@ -3304,10 +3304,10 @@ SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_cha
|
|||||||
|
|
||||||
for (i = 0; i < new_len; ++i)
|
for (i = 0; i < new_len; ++i)
|
||||||
{
|
{
|
||||||
PyObject *line = PyList_GetItem(list, i);
|
PyObject *line;
|
||||||
|
|
||||||
array[i] = StringToLine(line);
|
if (!(line = PyList_GetItem(list, i)) ||
|
||||||
if (array[i] == NULL)
|
!(array[i] = StringToLine(line)))
|
||||||
{
|
{
|
||||||
while (i)
|
while (i)
|
||||||
vim_free(array[--i]);
|
vim_free(array[--i]);
|
||||||
@@ -3319,7 +3319,7 @@ SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_cha
|
|||||||
VimTryStart();
|
VimTryStart();
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
|
|
||||||
// START of region without "return". Must call restore_buffer()!
|
/* START of region without "return". Must call restore_buffer()! */
|
||||||
switch_buffer(&savebuf, buf);
|
switch_buffer(&savebuf, buf);
|
||||||
|
|
||||||
if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
|
if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
|
||||||
@@ -3400,7 +3400,7 @@ SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_cha
|
|||||||
if (buf == savebuf)
|
if (buf == savebuf)
|
||||||
py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
|
py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
|
||||||
|
|
||||||
// END of region without "return".
|
/* END of region without "return". */
|
||||||
restore_buffer(savebuf);
|
restore_buffer(savebuf);
|
||||||
|
|
||||||
if (VimTryEnd())
|
if (VimTryEnd())
|
||||||
@@ -3479,10 +3479,10 @@ InsertBufferLines(buf_T *buf, PyInt n, PyObject *lines, PyInt *len_change)
|
|||||||
|
|
||||||
for (i = 0; i < size; ++i)
|
for (i = 0; i < size; ++i)
|
||||||
{
|
{
|
||||||
PyObject *line = PyList_GetItem(lines, i);
|
PyObject *line;
|
||||||
array[i] = StringToLine(line);
|
|
||||||
|
|
||||||
if (array[i] == NULL)
|
if (!(line = PyList_GetItem(lines, i)) ||
|
||||||
|
!(array[i] = StringToLine(line)))
|
||||||
{
|
{
|
||||||
while (i)
|
while (i)
|
||||||
vim_free(array[--i]);
|
vim_free(array[--i]);
|
||||||
@@ -4014,8 +4014,15 @@ BufferMark(BufferObject *self, PyObject *args)
|
|||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "s", &pmark))
|
if (!PyArg_ParseTuple(args, "s", &pmark))
|
||||||
return NULL;
|
return NULL;
|
||||||
mark = *pmark;
|
|
||||||
|
|
||||||
|
if (STRLEN(pmark) != 1)
|
||||||
|
{
|
||||||
|
PyErr_SetString(PyExc_ValueError,
|
||||||
|
_("mark name must be a single character"));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
mark = *pmark;
|
||||||
VimTryStart();
|
VimTryStart();
|
||||||
switch_buffer(&savebuf, self->buf);
|
switch_buffer(&savebuf, self->buf);
|
||||||
posp = getmark(mark, FALSE);
|
posp = getmark(mark, FALSE);
|
||||||
@@ -4258,7 +4265,7 @@ CurrentSetattr(PyObject *self UNUSED, char *name, PyObject *value)
|
|||||||
|
|
||||||
if (value->ob_type != &BufferType)
|
if (value->ob_type != &BufferType)
|
||||||
{
|
{
|
||||||
PyErr_SetString(PyExc_TypeError, _("expected vim.buffer object"));
|
PyErr_SetString(PyExc_TypeError, _("expected vim.Buffer object"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4283,7 +4290,7 @@ CurrentSetattr(PyObject *self UNUSED, char *name, PyObject *value)
|
|||||||
|
|
||||||
if (value->ob_type != &WindowType)
|
if (value->ob_type != &WindowType)
|
||||||
{
|
{
|
||||||
PyErr_SetString(PyExc_TypeError, _("expected vim.window object"));
|
PyErr_SetString(PyExc_TypeError, _("expected vim.Window object"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4315,7 +4322,7 @@ CurrentSetattr(PyObject *self UNUSED, char *name, PyObject *value)
|
|||||||
{
|
{
|
||||||
if (value->ob_type != &TabPageType)
|
if (value->ob_type != &TabPageType)
|
||||||
{
|
{
|
||||||
PyErr_SetString(PyExc_TypeError, _("expected vim.tabpage object"));
|
PyErr_SetString(PyExc_TypeError, _("expected vim.TabPage object"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -728,6 +728,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1064,
|
||||||
/**/
|
/**/
|
||||||
1063,
|
1063,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user