xfree86: factor out the check priviliges and print a big warning
Current message was quite off "file specified must be a relative path" and alike. Just factor it out and use "path/file" as needed. v2: Rework error message, drop "Using default", print actual arg value. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
This commit is contained in:
parent
2378adde67
commit
0fdd475604
|
@ -1090,6 +1090,16 @@ xf86PrintDefaultLibraryPath(void)
|
|||
ErrorF("%s\n", DEFAULT_LIBRARY_PATH);
|
||||
}
|
||||
|
||||
static void
|
||||
xf86CheckPrivs(const char *option, const char *arg)
|
||||
{
|
||||
if (xf86PrivsElevated() && !xf86PathIsSafe(arg)) {
|
||||
FatalError("\nInvalid argument for %s - \"%s\"\n"
|
||||
"\tWith elevated privileges %s must specify a relative path\n"
|
||||
"\twithout any \"..\" elements.\n\n", option, arg, option);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* ddxProcessArgument --
|
||||
* Process device-dependent command line args. Returns 0 if argument is
|
||||
|
@ -1140,25 +1150,13 @@ ddxProcessArgument(int argc, char **argv, int i)
|
|||
}
|
||||
if (!strcmp(argv[i], "-config") || !strcmp(argv[i], "-xf86config")) {
|
||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
||||
if (xf86PrivsElevated() && !xf86PathIsSafe(argv[i + 1])) {
|
||||
FatalError("\nInvalid argument for %s\n"
|
||||
"\tWith elevated privileges, the file specified with %s must be\n"
|
||||
"\ta relative path and must not contain any \"..\" elements.\n"
|
||||
"\tUsing default " __XCONFIGFILE__ " search path.\n\n",
|
||||
argv[i], argv[i]);
|
||||
}
|
||||
xf86CheckPrivs(argv[i], argv[i + 1]);
|
||||
xf86ConfigFile = argv[i + 1];
|
||||
return 2;
|
||||
}
|
||||
if (!strcmp(argv[i], "-configdir")) {
|
||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
||||
if (xf86PrivsElevated() && !xf86PathIsSafe(argv[i + 1])) {
|
||||
FatalError("\nInvalid argument for %s\n"
|
||||
"\tWith elevated privileges, the file specified with %s must be\n"
|
||||
"\ta relative path and must not contain any \"..\" elements.\n"
|
||||
"\tUsing default " __XCONFIGDIR__ " search path.\n\n",
|
||||
argv[i], argv[i]);
|
||||
}
|
||||
xf86CheckPrivs(argv[i], argv[i + 1]);
|
||||
xf86ConfigDir = argv[i + 1];
|
||||
return 2;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user