Set errno in is_loopdev on error
Subsystems (2)
PATCH 1/1 Set errno in is_loopdev on error
The function is_loopdev does not set errno if the supplied string does not reference a valid loop device. Fix this to avoid an error message like this one:
losetup: /: failed to use device: Success
I prefer this one:
losetup: /: failed to use device: No such device
Signed-off-by Tobias Stoeckmann <[email protected]>
--- lib/loopdev.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
lib/loopdev.c +6 -5
@@ -633,12 +633,13 @@ int is_loopdev(const char *device) {struct stat st; -if (!device) -return 0 ; - -return (stat (device, &st) ==0 && +if (device &&stat (device, &st) ==0 &&S_ISBLK (st.st_mode) && -major (st.st_rdev) ==LOOPDEV_MAJOR ); +major (st.st_rdev) ==LOOPDEV_MAJOR ) +return 1 ; + + errno =ENODEV ; +return 0 ; }/*
Signature · 1 line
2.9.3
Karel Zak
maintainerQuoted 2 lines · Tobias Stoeckmann
lib/loopdev.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
Good catch. Applied, thanks.
Karel
Signature · 2 lines
Karel Zak <[email protected]> http://karelzak.blogspot.com