← Commit list

84d71f33f

Denis Vlasenko
Denis Vlasenko
2007-08-06
FAILED Duration: 12s

Subject

setfiles: * Bug fix: -f option did not work. * Using bb_simplify_path to remove extra slash for smaller code. (by Yuichi Nakamura )

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

selinux/setfiles.c+5 -14
@@ -264,28 +264,21 @@ static bool only_changed_user(const char *a, const char *b)
static int restore(const char *file)
{
- char *my_file = xstrdup(file);
- char *my_file_orig = my_file;
+ char *my_file;
struct stat my_sb;
int i, j, ret;
char *context = NULL;
char *newcon = NULL;
bool user_only_changed = 0;
- size_t len = strlen(my_file);
int retval = 0;
-
- /* Skip the extra slashes at the beginning and end, if present. */
- if (file[0] == '/' && file[1] == '/')
- my_file++;
- if (len > 1 && my_file[len - 1] == '/')
- my_file[len - 1] = '\0';
+
+ my_file = bb_simplify_path(file);
i = match(my_file, &my_sb, &newcon);
if (i < 0) /* No matching specification. */
goto out;
-
if (FLAG_p_progress) {
count++;
if (count % 0x400 == 0) { /* every 1024 times */
@@ -386,7 +379,7 @@ static int restore(const char *file)
out:
freecon(context);
freecon(newcon);
- free(my_file_orig);
+ free(my_file);
return retval;
err:
retval--; /* -1 */
@@ -499,7 +492,6 @@ int setfiles_main(int argc, char **argv)
struct stat sb;
int rc, i = 0;
const char *input_filename = NULL;
- int use_input_file = 0;
char *buf = NULL;
size_t buf_len;
int flags;
@@ -591,7 +583,6 @@ int setfiles_main(int argc, char **argv)
rootpathlen = strlen(rootpath);
}
if (flags & OPT_s) {
- use_input_file = 1;
input_filename = "-";
add_assoc = 0;
}
@@ -621,7 +612,7 @@ int setfiles_main(int argc, char **argv)
exit(1);
}
- if (use_input_file) {
+ if (input_filename) {
ssize_t len;
FILE *f = stdin;