summaryrefslogtreecommitdiff
path: root/ubi-utils/src
diff options
context:
space:
mode:
authorMichael Roth <mroth@nessie.de>2009-09-23 15:01:27 +0200
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2009-09-28 11:19:14 +0300
commit0e63a4c4f1ebc31f545835bd018174414928fc6f (patch)
tree461b4ed87909134afa3e2579b07d7fbc4412e053 /ubi-utils/src
parent145ee7ab6fc9c4ccb6f3497d5fb112ed6f696433 (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/src')
-rw-r--r--ubi-utils/src/ubiformat.c8
-rw-r--r--ubi-utils/src/ubinize.c8
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;
}