Signed-off-by: Sage Weil <sage@inktank.com>
unsigned int crc;
unsigned char* p_buf;
- p_buf = (unsigned char*)buffer;
- unsigned char const * p_end = buffer + len;
+ if (buffer) {
+ p_buf = (unsigned char*)buffer;
+ unsigned char const * p_end = buffer + len;
- crc = crc_init;
+ crc = crc_init;
+
+ while (p_buf < (unsigned char *) p_end ){
+ crc = (crc >> 8) ^ crc32_table_iscsi_base[(crc & 0x000000FF) ^ *p_buf++];
+ }
+ } else {
+ crc = crc_init;
+ while (len--) {
+ crc = (crc >> 8) ^ crc32_table_iscsi_base[(crc & 0x000000FF)];
+ }
- while(p_buf < (unsigned char *) p_end ){
- crc = (crc >> 8) ^ crc32_table_iscsi_base[(crc & 0x000000FF) ^ *p_buf++] ;
}
return crc;
}