chiark / gitweb /
volume_id: fix error handling with failing read()
[elogind.git] / extras / volume_id / vol_id.c
index 6a9d1120e0cf30e44396ef32628f830f1cec85c0..2b53085c72a6bdc31a624e8698af5b8664d09879 100644 (file)
@@ -66,7 +66,7 @@ static void set_str(char *to, const char *from, size_t count)
 
        /* strip trailing whitespace */
        len = strnlen(from, count);
-       while (isspace(from[len-1]))
+       while (len && isspace(from[len-1]))
                len--;
 
        /* strip leading whitespace */
@@ -145,6 +145,7 @@ int main(int argc, char *argv[])
 
        if (ioctl(vid->fd, BLKGETSIZE64, &size) != 0)
                size = 0;
+       dbg("BLKGETSIZE64=%llu", size);
 
        if (volume_id_probe_all(vid, 0, size) == 0)
                goto print;
@@ -156,6 +157,7 @@ int main(int argc, char *argv[])
 
 print:
        set_str(name, vid->label, sizeof(vid->label));
+       replace_untrusted_chars(name);
 
        switch (print) {
        case PRINT_EXPORT: