diff options
author | Michael Roth <mroth@nessie.de> | 2009-09-23 15:01:27 +0200 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-09-28 11:19:14 +0300 |
commit | 0e63a4c4f1ebc31f545835bd018174414928fc6f (patch) | |
tree | 461b4ed87909134afa3e2579b07d7fbc4412e053 /ubi-utils | |
parent | 145ee7ab6fc9c4ccb6f3497d5fb112ed6f696433 (diff) |
ubiformat/ubinize: Don't randomize 0xFFFFFFFF sequence number
args.image_seq is of type uint32_t and was initialized to -1 which
becomes 0xFFFFFFFF in this case. Later the value -1 was used as a flag
that args.image_seq should be replaced with a randomized value.
With the option --image-seq (-Q) a user could provide any sequence
number at will.
But when the user provided sequence number was 0xFFFFFFFF this was
understood effectivly as -1 and got overridden by a randomized
sequence number.
So this patch change the programm flow to respect the principle of
least surprise and never use a randomized sequence number when the
user provide one at own will.
Signed-off-by: Michael Roth <mroth@nessie.de>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'ubi-utils')
-rw-r--r-- | ubi-utils/src/ubiformat.c | 8 | ||||
-rw-r--r-- | ubi-utils/src/ubinize.c | 8 |
2 files changed, 6 insertions, 10 deletions
diff --git a/ubi-utils/src/ubiformat.c b/ubi-utils/src/ubiformat.c index bed0339..54363d7 100644 --- a/ubi-utils/src/ubiformat.c +++ b/ubi-utils/src/ubiformat.c @@ -70,7 +70,6 @@ struct args { static struct args args = { .ubi_ver = 1, - .image_seq = -1, }; static const char *doc = PROGRAM_NAME " version " PROGRAM_VERSION @@ -131,6 +130,9 @@ static const struct option long_options[] = { static int parse_opt(int argc, char * const argv[]) { + srand(getpid()); + args.image_seq = random(); + while (1) { int key; char *endp; @@ -235,10 +237,6 @@ static int parse_opt(int argc, char * const argv[]) if (args.image && args.novtbl) return errmsg("-n cannot be used together with -f"); - if (!args.image_seq == -1) { - srand(getpid()); - args.image_seq = random(); - } args.node = argv[optind]; return 0; diff --git a/ubi-utils/src/ubinize.c b/ubi-utils/src/ubinize.c index a46833c..74ddc0f 100644 --- a/ubi-utils/src/ubinize.c +++ b/ubi-utils/src/ubinize.c @@ -153,11 +153,13 @@ static struct args args = { .min_io_size = -1, .subpage_size = -1, .ubi_ver = 1, - .image_seq = -1, }; static int parse_opt(int argc, char * const argv[]) { + srand(getpid()); + args.image_seq = random(); + while (1) { int key; char *endp; @@ -283,10 +285,6 @@ static int parse_opt(int argc, char * const argv[]) return errmsg("VID header offset has to be multiple of min. I/O unit size"); } - if (!args.image_seq == -1) { - srand(getpid()); - args.image_seq = random(); - } return 0; } |