diff --git a/client/fdfs_crc32.c b/client/fdfs_crc32.c index 94b1d9f..5ec81d1 100644 --- a/client/fdfs_crc32.c +++ b/client/fdfs_crc32.c @@ -35,8 +35,15 @@ int main(int argc, char *argv[]) filename = argv[1]; fd = open(filename, O_RDONLY); - if (fd < 0) + if(filename == NULL) { + printf("file: "__FILE__", line: %d, " \ + "open filename %s fail, " \ + "errno: %d, error info: %s\n",\ + __LINE__,filename, errno, STRERROR(errno)); + return errno != 0 ? errno : EACCES; + } + if (fd < 0) { printf("file: "__FILE__", line: %d, " \ "open file %s fail, " \ "errno: %d, error info: %s\n", \ @@ -66,7 +73,13 @@ int main(int argc, char *argv[]) crc32 = CRC32_XINIT; result = 0; + if(file_size<0) + { + close(fd); + return errno; + } remain_bytes = file_size; + while (remain_bytes > 0) { if (remain_bytes > sizeof(buff))