[multipath] correct map size display
authorroot <root@potab.(none)>
Wed, 10 Aug 2005 13:21:13 +0000 (15:21 +0200)
committerroot <root@potab.(none)>
Wed, 10 Aug 2005 13:21:13 +0000 (15:21 +0200)
off-by-one shifting error.

libmultipath/discovery.c
multipath/main.c

index 77d133a..f171afa 100644 (file)
@@ -334,7 +334,7 @@ get_serial (char * str, int fd)
                len = buff[3];
                if (len > 0) {
                        memcpy(str, buff + 4, len);
-                       buff[len] = '\0';
+                       str[len] = '\0';
                }
                return 1;
        }
index e71c296..557c8cd 100644 (file)
@@ -229,13 +229,13 @@ print_mp (struct multipath * mpp)
        printf("\n");
 
        if (mpp->size < (1 << 11))
-               printf("[size=%llu kB]", mpp->size);
+               printf("[size=%llu kB]", mpp->size >> 1);
        else if (mpp->size < (1 << 21))
-               printf("[size=%llu MB]", mpp->size >> 10);
+               printf("[size=%llu MB]", mpp->size >> 11);
        else if (mpp->size < (1 << 31))
-               printf("[size=%llu GB]", mpp->size >> 20);
+               printf("[size=%llu GB]", mpp->size >> 21);
        else
-               printf("[size=%llu TB]", mpp->size >> 30);
+               printf("[size=%llu TB]", mpp->size >> 31);
 
        if (mpp->features)
                printf("[features=\"%s\"]", mpp->features);