From 9533e3402433245489bcf55adf1e134ca71b4798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Sun, 27 Feb 2005 20:33:25 +0000 Subject: Patch #1093585: raise a ValueError for negative history items in remove_history and replace_history. Will backport to 2.4. --- Misc/NEWS | 3 +++ Modules/readline.c | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/Misc/NEWS b/Misc/NEWS index 7d6a9e6..68762a6 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -34,6 +34,9 @@ Core and builtins Extension Modules ----------------- +- Patch #1093585: raise a ValueError for negative history items in readline. + {remove_history,replace_history} + - The spwd module has been added, allowing access to the shadow password database. diff --git a/Modules/readline.c b/Modules/readline.c index 9d5a6be..706eb7a 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -303,6 +303,11 @@ py_remove_history(PyObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "i:remove_history", &entry_number)) return NULL; + if (entry_number < 0) { + PyErr_SetString(PyExc_ValueError, + "History index cannot be negative"); + return NULL; + } entry = remove_history(entry_number); if (!entry) { PyErr_Format(PyExc_ValueError, @@ -335,6 +340,11 @@ py_replace_history(PyObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "is:replace_history", &entry_number, &line)) { return NULL; } + if (entry_number < 0) { + PyErr_SetString(PyExc_ValueError, + "History index cannot be negative"); + return NULL; + } old_entry = replace_history_entry(entry_number, line, (void *)NULL); if (!old_entry) { PyErr_Format(PyExc_ValueError, -- cgit v0.12