- add libbb function str_tolower to convert a string to lowercase.
[oweals/busybox.git] / coreutils / md5_sha1_sum.c
index e8d3a15099e6123c79009d0e131d7e9b9e7a0512..417e90b00d96c36a07fa7ca2d0dd493a5c1d3486 100644 (file)
@@ -18,11 +18,9 @@ typedef enum { HASH_SHA1, HASH_MD5 } hash_algo_t;
 static unsigned char *hash_bin_to_hex(unsigned char *hash_value,
                                unsigned hash_length)
 {
-       int len = 0;
-       char *hex_value = xmalloc((hash_length * 2) + 2);
-       while (hash_length--) {
-               len += sprintf(hex_value + len, "%02x", *hash_value++);
-       }
+       /* xzalloc zero-terminates */
+       char *hex_value = xzalloc((hash_length * 2) + 1);
+       bin2hex(hex_value, (char*)hash_value, hash_length);
        return hex_value;
 }
 
@@ -39,7 +37,7 @@ static uint8_t *hash_file(const char *filename, hash_algo_t hash_algo)
        void (*final)(void*, void*);
 
        src_fd = STDIN_FILENO;
-       if (filename[0] != '-' || filename[1]) { /* not "-" */
+       if (NOT_LONE_DASH(filename)) {
                src_fd = open(filename, O_RDONLY);
                if (src_fd < 0) {
                        bb_perror_msg("%s", filename);
@@ -80,6 +78,7 @@ static uint8_t *hash_file(const char *filename, hash_algo_t hash_algo)
        return hash_value;
 }
 
+int md5_sha1_sum_main(int argc, char **argv);
 int md5_sha1_sum_main(int argc, char **argv)
 {
        int return_value = EXIT_SUCCESS;
@@ -104,7 +103,7 @@ int md5_sha1_sum_main(int argc, char **argv)
        }
 
        if (argc == optind) {
-               argv[argc++] = "-";
+               argv[argc++] = (char*)"-";
        }
 
        if (ENABLE_FEATURE_MD5_SHA1_SUM_CHECK && (flags & FLAG_CHECK)) {
@@ -120,7 +119,7 @@ int md5_sha1_sum_main(int argc, char **argv)
                }
 
                pre_computed_stream = stdin;
-               if (file_ptr[0] != '-' || file_ptr[1]) { /* not "-" */
+               if (NOT_LONE_DASH(file_ptr)) {
                        pre_computed_stream = xfopen(file_ptr, "r");
                }