run-parts: permit dot later in file name
See https://gist.github.com/andyshinn/3ae01fa13cb64c9d36e7#gistcomment-2044506 To test: mkdir /tmp/testrp printf "#!/bin/sh\necho test\n" > /tmp/testrp/test.sh chmod a+x /tmp/testrp/* busybox run-parts /tmp/testrp test mv /tmp/testrp/test.sh /tmp/testrp/.test.sh busybox run-parts /tmp/testrp # no output function old new delta act 190 200 +10 Signed-off-by: Ján Sáreník <jajomojo@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
947a22b332
commit
8c1f8aa016
@ -113,13 +113,24 @@ enum {
|
||||
};
|
||||
|
||||
/* Is this a valid filename (upper/lower alpha, digits,
|
||||
* underscores, and hyphens only?)
|
||||
* underscores, hyphens, and non-leading dots only?)
|
||||
*/
|
||||
static bool invalid_name(const char *c)
|
||||
{
|
||||
c = bb_basename(c);
|
||||
|
||||
while (*c && (isalnum(*c) || *c == '_' || *c == '-'))
|
||||
if (*c == '.')
|
||||
return *c;
|
||||
|
||||
/* Debian run-parts 4.8.3, manpage:
|
||||
* "...the names must consist entirely of ASCII letters,
|
||||
* ASCII digits, ASCII underscores, and ASCII minus-hyphens.
|
||||
* However, the name must not begin with a period."
|
||||
* The last sentence is a giveaway that something is fishy
|
||||
* (why mention leading dot if dots are not allowed anyway?).
|
||||
* Yes, you guessed it right: in fact non-leading dots ARE allowed.
|
||||
*/
|
||||
while (isalnum(*c) || *c == '_' || *c == '-' || *c == '.')
|
||||
c++;
|
||||
|
||||
return *c; /* TRUE (!0) if terminating NUL is not reached */
|
||||
|
Loading…
Reference in New Issue
Block a user