diff options
author | Mattias Andrée <maandree@operamail.com> | 2013-07-24 13:48:35 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@operamail.com> | 2013-07-24 13:48:35 +0200 |
commit | 820b457917a4440752ac03ca0ea1c1bcfa4e6e38 (patch) | |
tree | 897ba8897b3b30f931369cdd6641e0c6ead04550 /c | |
parent | in case st_blksize is not properly set (diff) | |
download | sha3sum-820b457917a4440752ac03ca0ea1c1bcfa4e6e38.tar.gz sha3sum-820b457917a4440752ac03ca0ea1c1bcfa4e6e38.tar.bz2 sha3sum-820b457917a4440752ac03ca0ea1c1bcfa4e6e38.tar.xz |
use st_blksize in c implementation
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'c')
-rw-r--r-- | c/sha3sum.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/c/sha3sum.c b/c/sha3sum.c index 4467a72..edfaddf 100644 --- a/c/sha3sum.c +++ b/c/sha3sum.c @@ -17,7 +17,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <stdio.h> -#include <stdlib.h> +#include <sys/stat.h> #include "sha3.h" @@ -566,6 +566,7 @@ int main(int argc, char** argv) char* filename; char* fn; long f, fail, _; + struct stat attr; char* out = binary ? null : (char*)malloc(bn * 2); @@ -592,7 +593,9 @@ int main(int argc, char** argv) if ((filename != null) || (stdin == null)) { initialise(r, c, o); - blksize = 4096; /** XXX os.stat(os.path.realpath(fn)).st_size; **/ + blksize = stat(*(argv + f), &attr) ? 0 : attr.st_blksize; + if (blksize <= 0) + blksize = 4096; chunk = (char*)malloc(blksize); for (;;) { |