acceaa8
diff -Naur pycrypto-2.0.1.org/src/ARC2.c pycrypto-2.0.1/src/ARC2.c
acceaa8
--- pycrypto-2.0.1.org/src/ARC2.c	2009-02-13 17:08:30.000000000 +0100
acceaa8
+++ pycrypto-2.0.1/src/ARC2.c	2009-02-13 17:08:47.000000000 +0100
acceaa8
@@ -11,6 +11,7 @@
acceaa8
  */
acceaa8
 
acceaa8
 #include <string.h>  
acceaa8
+#include "Python.h"
acceaa8
 
acceaa8
 #define MODULE_NAME ARC2
acceaa8
 #define BLOCK_SIZE 8
acceaa8
@@ -146,6 +147,12 @@
acceaa8
 	   We'll hardwire it to 1024. */
acceaa8
 #define bits 1024
acceaa8
 
acceaa8
+	if ((U32)keylength > sizeof(self->xkey)) {
acceaa8
+		PyErr_SetString(PyExc_ValueError,
acceaa8
+				"ARC2 key length must be less than 128 bytes");
acceaa8
+		return;
acceaa8
+	}
acceaa8
+
acceaa8
 	memcpy(self->xkey, key, keylength);
acceaa8
   
acceaa8
 	/* Phase 1: Expand input key to 128 bytes */