Skip to contentSkip to conversation

mke2img: Sanity check block size and fail if zero or missing.

PATCH New J Evans 2 participants 3 messages Apr 29, 2017

lore
Share & tools
lore

J Evans

author
#0 lore raw

PATCH 1/1 mke2img: Sanity check block size and fail if zero or missing.

---
 package/mke2img/mke2img | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
package/mke2img/mke2img +8 -2
index b773aa9..0a3ed6c 100755
@@ -39,10 +39,16 @@ main() {
 
     # Sanity checks
     if [ -z "${root_dir}" ]; then
-        error "you must specify a root directory with '-d'\n"
+        error "Error: you must specify a root directory with '-d'\n"
     fi
     if [ -z "${image}" ]; then
-        error "you must specify an output image file with '-o'\n"
+        error "Error: you must specify an output image file with '-o'\n"
+    fi
+    if [ -z "${nb_blocks}" ]; then
+        error "Error: you must specify a file system block count with '-b'. This cannot be zero, e.g. 61440 == 60MB\n"
+    fi
+    if [ "${nb_blocks}" -eq 0]; then
+        error "Error: The file system block count size cannot be zero. e.g. 61440 == 60MB \n"
     fi
     case "${gen}:${rev}" in
     2:0|2:1|3:1|4:1)
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 mke2img: Sanity check block size and fail if zero or missing.

J, All,

On 2017-04-29 15:58 +0100, J Evans spake thusly:

Quoted 10 lines
---
 package/mke2img/mke2img | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
package/mke2img/mke2img +0 -0
index b773aa9..0a3ed6c 100755

package/mke2img/mke2img main() { · line 45

Quoted 9 lines
package/mke2img/mke2img +2 -2
@@ -39,10 +39,16 @@ main() {
 
     # Sanity checks
     if [ -z "${root_dir}" ]; then
-        error "you must specify a root directory with '-d'\n"
+        error "Error: you must specify a root directory with '-d'\n"
     fi
     if [ -z "${image}" ]; then
-        error "you must specify an output image file with '-o'\n"
+        error "Error: you must specify an output image file with '-o'\n"

Is that really necessary?

package/mke2img/mke2img main() { · line 50

Quoted 5 lines
package/mke2img/mke2img +5 -0
+    fi
+    if [ -z "${nb_blocks}" ]; then
+        error "Error: you must specify a file system block count with '-b'. This cannot be zero, e.g. 61440 == 60MB\n"
+    fi
+    if [ "${nb_blocks}" -eq 0]; then

There is an obvious error here: there is a missing space between '0' and the closing bracket ']'.

However, I wonder why we should check for a zero size. The filesystem will be non-creatable (is that a word?) because the requested size is too low, similar to what a user would get by settign the nb_blocks to (e.g.) 1024 (i.e. 1MiB) but have a target/ that is 2MiB: that won't fit.

So, I would just keep the check to being set, whatever the value (but I would not oppose the check against 0 either.)

Regards,
Yann E. MORIN.

Quoted 7 lines
package/mke2img/mke2img +1 -0
+        error "Error: The file system block count size cannot be zero. e.g. 61440 == 60MB \n"
     fi
     case "${gen}:${rev}" in
     2:0|2:1|3:1|4:1)
Signature · 1 line
2.7.4
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#2 lore raw

PATCH 1/1 mke2img: Sanity check block size and fail if zero or missing.

Hello Yann,

Quoted 11 lines

package/mke2img/mke2img main() { · line 45

Quoted 9 lines

# Sanity checks
if [ -z "${root_dir}" ]; then

package/mke2img/mke2img +2 -2
-        error "you must specify a root directory with '-d'\n"
+        error "Error: you must specify a root directory with '-d'\n"
     fi
     if [ -z "${image}" ]; then
-        error "you must specify an output image file with '-o'\n"
+        error "Error: you must specify an output image file with '-o'\n"

Is that really necessary?

The original justification was for any user calling the script directly. Now I think no, it is not.

Quoted 3 lines

There is an obvious error here: there is a missing space between '0' and the closing bracket ']'.

Indeed. <facepalm>

Quoted 7 lines

However, I wonder why we should check for a zero size. The filesystem will be non-creatable (is that a word?) because the requested size is too low, similar to what a user would get by settign the nb_blocks to (e.g.) 1024 (i.e. 1MiB) but have a target/ that is 2MiB: that won't fit.

So, I would just keep the check to being set, whatever the value (but I would not oppose the check against 0 either.)

My revised version applies a check in the ext2.mk file itself. I think this is much cleaner.

Best,

Jerry.