From 33f046204c27b23f17d33487b35709c6a04f67a4 Mon Sep 17 00:00:00 2001 From: leslie Date: Thu, 3 Jan 2008 17:08:06 +0100 Subject: [PATCH] made RotateBytes robust against bad input --- crypto.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/crypto.c b/crypto.c index c1e64cc..a6c5bb4 100644 --- a/crypto.c +++ b/crypto.c @@ -29,22 +29,22 @@ void RotateBytes(unsigned char *out, const unsigned char *in, int n) { - // loop is executed atleast once, so it's not a good idea to - // call with n=0 !! - out+=n; - do { *(--out)=*(in++); } while(--n); + if(n>0) { + out+=n; + do { *(--out)=*(in++); } while(--n); + } } void RotateBytes(unsigned char *in, int n) { - // loop is executed atleast once, so it's not a good idea to - // call with n=0 !! - unsigned char *e=in+n-1; - do { - unsigned char temp=*in; - *in++=*e; - *e-- =temp; - } while(in1) { + unsigned char *e=in+n-1; + do { + unsigned char temp=*in; + *in++=*e; + *e-- =temp; + } while(in