diff options
Diffstat (limited to '')
-rw-r--r-- | flx/ChangeLog | 2 | ||||
-rw-r--r-- | flx/Makefile | 2 | ||||
-rw-r--r-- | flx/TODO | 4 | ||||
-rw-r--r-- | flx/fct1.c | 11 |
4 files changed, 14 insertions, 5 deletions
diff --git a/flx/ChangeLog b/flx/ChangeLog index 50da2b5..5397930 100644 --- a/flx/ChangeLog +++ b/flx/ChangeLog @@ -1,3 +1,5 @@ +2003/06/05 : Version 0.6.7 +- segfault on /proc directory : size_t -> ssize_t 2003/01/04 : Version 0.6.6c - Before a crash disk, I 2001/12/23 : Version 0.3 diff --git a/flx/Makefile b/flx/Makefile index a84b701..214385f 100644 --- a/flx/Makefile +++ b/flx/Makefile @@ -26,7 +26,7 @@ NAME=flx -VERSION=0.6.6e +VERSION=0.6.7 SRC=main.c arg.c utils.c md5.c flx.c fct1.c check.c sign.c \ input.c input_fs.c input_file.c \ output.c output_file.c @@ -1,3 +1,7 @@ +2003/06/01: + - ignore dots : ne pas signer . et .. si ce n'est pas + forcé par parametre + 2002/06/18: completly change @@ -224,8 +224,8 @@ int browse_over_path(char *path, PROTO_FS(*fct), void *data) { /* build an MD5 checksum from data in file */ char *checksum_md5_from_file(char *file) { int fd; - size_t size; - char *checksum_md5 = 0, blk[BUFFER_LENGTH]; + ssize_t size; + char *checksum_md5 = NULL, blk[BUFFER_LENGTH]; MD5_CTX md5_ctx; if ((fd = open(file, O_RDONLY)) < 0 ) { @@ -236,8 +236,11 @@ char *checksum_md5_from_file(char *file) { while ((size = read(fd, blk, BUFFER_LENGTH)) > 0) MD5_Update(&md5_ctx, blk, size); close(fd); - checksum_md5 = MALLOC(16); - MD5_Final(checksum_md5, &md5_ctx); + // if size = -1, there is a read error, don't do anything + if (size == 0) { // last read is null + checksum_md5 = MALLOC(16); + MD5_Final(checksum_md5, &md5_ctx); + } } return (checksum_md5); } |