Patch #1093585: raise a ValueError for negative history items in
remove_history and replace_history. Will backport to 2.4.
diff --git a/Misc/NEWS b/Misc/NEWS
index 7d6a9e6..68762a6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -34,6 +34,9 @@
 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 @@
 
         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 @@
         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,