Batch from Bastian Blank to fix debian bug #216435;

When linking a non existing file busybox ln will report the target
missind and not the source:
This commit is contained in:
Glenn L McGrath 2003-12-31 23:10:44 +00:00
parent 7f48a959f5
commit cfc0ad4260

View File

@ -43,7 +43,8 @@ extern int ln_main(int argc, char **argv)
int flag; int flag;
char *last; char *last;
char *src_name; char *src_name;
const char *src; char *src;
struct stat statbuf;
int (*link_func)(const char *, const char *); int (*link_func)(const char *, const char *);
flag = bb_getopt_ulflags(argc, argv, "sfn"); flag = bb_getopt_ulflags(argc, argv, "sfn");
@ -61,7 +62,7 @@ extern int ln_main(int argc, char **argv)
} }
do { do {
src_name = 0; src_name = NULL;
src = last; src = last;
if (is_directory(src, if (is_directory(src,
@ -70,7 +71,14 @@ extern int ln_main(int argc, char **argv)
src_name = bb_xstrdup(*argv); src_name = bb_xstrdup(*argv);
src = concat_path_file(src, bb_get_last_path_component(src_name)); src = concat_path_file(src, bb_get_last_path_component(src_name));
free(src_name); free(src_name);
src_name = (char *)src; src_name = src;
}
if (stat(*argv, &statbuf)) {
bb_perror_msg(*argv);
status = EXIT_FAILURE;
free(src_name);
continue;
} }
if (flag & LN_FORCE) { if (flag & LN_FORCE) {
@ -84,7 +92,7 @@ extern int ln_main(int argc, char **argv)
if (link_func(*argv, src) != 0) { if (link_func(*argv, src) != 0) {
bb_perror_msg(src); bb_perror_msg(src);
status = EXIT_FAILURE;; status = EXIT_FAILURE;
} }
free(src_name); free(src_name);