X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=gostsum.c;h=b61215c9f08cb8ab05feb7ff9e57d653967a5c1e;hb=HEAD;hp=02d56881a32b99658ca3fdd0a3dce951d1c05f0d;hpb=13dcbd17f3c370a7005459e1b2e6470b0262d844;p=openssl-gost%2Fengine.git diff --git a/gostsum.c b/gostsum.c index 02d5688..b61215c 100644 --- a/gostsum.c +++ b/gostsum.c @@ -9,7 +9,16 @@ **********************************************************************/ #include #include +#ifdef _MSC_VER +#include "getopt.h" +# ifndef PATH_MAX +# define PATH_MAX _MAX_PATH +# endif +#include +typedef SSIZE_T ssize_t; +#else #include +#endif #include #include #ifdef _WIN32 @@ -77,7 +86,8 @@ int main(int argc, char **argv) init_gost_hash_ctx(&ctx, b); if (check_file) { char inhash[65], calcsum[65], filename[PATH_MAX]; - int failcount = 0, count = 0, errors = 0; + int failcount = 0, count = 0; + errors = 0; if (check_file == stdin && optind < argc) { check_file = fopen(argv[optind], "r"); if (!check_file) { @@ -88,8 +98,8 @@ int main(int argc, char **argv) while (get_line(check_file, inhash, filename)) { count++; if (!hash_file(&ctx, filename, calcsum, open_mode)) { - errors ++; - continue; + errors++; + continue; } if (strncmp(calcsum, inhash, 65) == 0) { if (verbose) { @@ -117,14 +127,14 @@ int main(int argc, char **argv) "%s: %d of %d file(f) failed GOST hash sum check\n", argv[0], failcount, count); } - exit((failcount || errors)? 1 : 0); + exit((failcount || errors) ? 1 : 0); } if (optind == argc) { char sum[65]; #ifdef _WIN32 - if (open_mode & O_BINARY) { - _setmode(fileno(stdin),O_BINARY); - } + if (open_mode & O_BINARY) { + _setmode(fileno(stdin), O_BINARY); + } #endif if (!hash_stream(&ctx, fileno(stdin), sum)) { perror("stdin"); @@ -153,6 +163,7 @@ int hash_file(gost_hash_ctx * ctx, char *filename, char *sum, int mode) } if (!hash_stream(ctx, fd, sum)) { perror(filename); + close(fd); return 0; } close(fd);