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