summaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
Diffstat (limited to 'libbb')
-rw-r--r--libbb/loop.c7
-rw-r--r--libbb/perror_msg.c6
-rw-r--r--libbb/perror_msg_and_die.c6
3 files changed, 14 insertions, 5 deletions
diff --git a/libbb/loop.c b/libbb/loop.c
index 9559d42..6934b7a 100644
--- a/libbb/loop.c
+++ b/libbb/loop.c
@@ -81,7 +81,8 @@ int del_loop(const char *device)
*/
int set_loop(char **device, const char *file, unsigned long long offset)
{
- char dev[20], *try;
+ char dev[LOOP_NAMESIZE];
+ char *try;
bb_loop_info loopinfo;
struct stat statbuf;
int i, dfd, ffd, mode, rc = -1;
@@ -140,14 +141,14 @@ int set_loop(char **device, const char *file, unsigned long long offset)
rc = -1;
}
close(dfd);
-try_again:
+ try_again:
if (*device) break;
}
close(ffd);
if (!rc) {
if (!*device)
*device = xstrdup(dev);
- return (mode == O_RDONLY) ? 1 : 0;
+ return (mode == O_RDONLY); /* 1:ro, 0:rw */
}
return rc;
}
diff --git a/libbb/perror_msg.c b/libbb/perror_msg.c
index 5145795..2ec1a9b 100644
--- a/libbb/perror_msg.c
+++ b/libbb/perror_msg.c
@@ -14,6 +14,10 @@ void bb_perror_msg(const char *s, ...)
va_list p;
va_start(p, s);
- bb_vperror_msg(s, p);
+ /* Guard against "<error message>: Success" */
+ if (!errno)
+ bb_verror_msg(s, p, NULL);
+ else
+ bb_vperror_msg(s, p);
va_end(p);
}
diff --git a/libbb/perror_msg_and_die.c b/libbb/perror_msg_and_die.c
index 3a06b65..90f56e0 100644
--- a/libbb/perror_msg_and_die.c
+++ b/libbb/perror_msg_and_die.c
@@ -14,7 +14,11 @@ void bb_perror_msg_and_die(const char *s, ...)
va_list p;
va_start(p, s);
- bb_vperror_msg(s, p);
+ /* Guard against "<error message>: Success" */
+ if (!errno)
+ bb_verror_msg(s, p, NULL);
+ else
+ bb_vperror_msg(s, p);
va_end(p);
xfunc_die();
}