Fix cvs signed pointer

the characters of pointer *p is used as an index to the array cvs_shifts. We control these characters as password and while it seems thats a valid action because cvs_shifts has size of 256, it isn't. The reason is that p is a signed pointer so when p[i](which is say 0xff) will be converted to unsigned size_t as 0xffffffff  and not as 255