aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-03-13 15:45:16 +0000
committerlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-03-13 15:45:16 +0000
commit12f32660d14e442e42ed667c106fec3a9db79856 (patch)
treee44405a7e5212758d20a9595cbb0a82609d4a347 /libbb
parente02e2f9792dc829c10ca3f18a1fab0294404ffea (diff)
downloadbusybox-w32-12f32660d14e442e42ed667c106fec3a9db79856.tar.gz
busybox-w32-12f32660d14e442e42ed667c106fec3a9db79856.tar.bz2
busybox-w32-12f32660d14e442e42ed667c106fec3a9db79856.zip
Patch from Denis Vlasenko to add xstat() and use it.
git-svn-id: svn://busybox.net/trunk/busybox@14530 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'libbb')
-rw-r--r--libbb/Makefile.in2
-rw-r--r--libbb/run_parts.c4
-rw-r--r--libbb/xstat.c11
3 files changed, 13 insertions, 4 deletions
diff --git a/libbb/Makefile.in b/libbb/Makefile.in
index b4ee3f501..159957aa4 100644
--- a/libbb/Makefile.in
+++ b/libbb/Makefile.in
@@ -26,7 +26,7 @@ LIBBB-y:= \
26 restricted_shell.c run_parts.c run_shell.c safe_read.c safe_write.c \ 26 restricted_shell.c run_parts.c run_shell.c safe_read.c safe_write.c \
27 safe_strncpy.c setup_environment.c sha1.c simplify_path.c \ 27 safe_strncpy.c setup_environment.c sha1.c simplify_path.c \
28 trim.c u_signal_names.c vdprintf.c verror_msg.c \ 28 trim.c u_signal_names.c vdprintf.c verror_msg.c \
29 vherror_msg.c vperror_msg.c wfopen.c xconnect.c xgetcwd.c \ 29 vherror_msg.c vperror_msg.c wfopen.c xconnect.c xgetcwd.c xstat.c \
30 xgethostbyname.c xgethostbyname2.c xreadlink.c xregcomp.c xgetlarg.c \ 30 xgethostbyname.c xgethostbyname2.c xreadlink.c xregcomp.c xgetlarg.c \
31 get_terminal_width_height.c fclose_nonstdin.c fflush_stdout_and_exit.c \ 31 get_terminal_width_height.c fclose_nonstdin.c fflush_stdout_and_exit.c \
32 getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \ 32 getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \
diff --git a/libbb/run_parts.c b/libbb/run_parts.c
index 7f5fe459b..864460d0d 100644
--- a/libbb/run_parts.c
+++ b/libbb/run_parts.c
@@ -76,9 +76,7 @@ int run_parts(char **args, const unsigned char test_mode, char **env)
76 76
77 filename = concat_path_file(arg0, namelist[i]->d_name); 77 filename = concat_path_file(arg0, namelist[i]->d_name);
78 78
79 if (stat(filename, &st) < 0) { 79 xstat(filename, &st);
80 bb_perror_msg_and_die("failed to stat component %s", filename);
81 }
82 if (S_ISREG(st.st_mode) && !access(filename, X_OK)) { 80 if (S_ISREG(st.st_mode) && !access(filename, X_OK)) {
83 if (test_mode) { 81 if (test_mode) {
84 puts(filename); 82 puts(filename);
diff --git a/libbb/xstat.c b/libbb/xstat.c
new file mode 100644
index 000000000..ca6686403
--- /dev/null
+++ b/libbb/xstat.c
@@ -0,0 +1,11 @@
1/*
2 * xstat.c - a stat() which dies on failure with meaningful error message
3 */
4#include <unistd.h>
5#include "libbb.h"
6
7void xstat(const char *name, struct stat *stat_buf)
8{
9 if (stat(name, stat_buf))
10 bb_perror_msg_and_die("Can't stat '%s'", name);
11}