Whamcloud - gitweb
debugfs: add sanity check to make sure we never shift 64 bits right
authorTheodore Ts'o <tytso@mit.edu>
Mon, 28 Jan 2013 14:02:23 +0000 (09:02 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 28 Jan 2013 14:06:23 +0000 (09:06 -0500)
In the tables which are used to parse the fields for the set_fields
command, there should never be a entry which has a size set to 8
bytes, and two pointers defined.  Not only would it result in
undefined behavior in the compiled code, it doesn't make any sense and
is definitely a bug.

Reported-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
debugfs/set_fields.c

index 08bfd8d..5c86d74 100644 (file)
@@ -389,7 +389,10 @@ static errcode_t parse_uint(struct field_set_info *info, char *field,
        n = num & mask;
        switch (size) {
        case 8:
-               *u.ptr64 = n;
+               /* Should never get here */
+               fprintf(stderr, "64-bit field %s has a second 64-bit field\n"
+                       "defined; BUG?!?\n", info->name);
+               *u.ptr64 = 0;
                break;
        case 4:
                *u.ptr32 = n;