HADOOP-10945. 4-digit octal umask permissions throws a parse error. Contributed by Chang Li
(cherry picked from commit 6f0a35724f
)
This commit is contained in:
parent
6f50a6a456
commit
e6b4714d0b
|
@ -529,6 +529,9 @@ Release 2.8.0 - UNRELEASED
|
|||
HADOOP-12175. FsShell must load SpanReceierHost to support tracing
|
||||
(Masatake Iwasaki via Colin P. McCabe)
|
||||
|
||||
HADOOP-10945. 4-digit octal umask permissions throws a parse error (Chang
|
||||
Li via jlowe)
|
||||
|
||||
Release 2.7.2 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -33,7 +33,7 @@ import org.apache.hadoop.classification.InterfaceStability;
|
|||
@InterfaceStability.Unstable
|
||||
class UmaskParser extends PermissionParser {
|
||||
private static Pattern chmodOctalPattern =
|
||||
Pattern.compile("^\\s*[+]?()([0-7]{3})\\s*$"); // no leading 1 for sticky bit
|
||||
Pattern.compile("^\\s*[+]?(0*)([0-7]{3})\\s*$"); // no leading 1 for sticky bit
|
||||
private static Pattern umaskSymbolicPattern = /* not allow X or t */
|
||||
Pattern.compile("\\G\\s*([ugoa]*)([+=-]+)([rwx]*)([,\\s]*)\\s*");
|
||||
final short umaskMode;
|
||||
|
|
|
@ -20,6 +20,7 @@ package org.apache.hadoop.security;
|
|||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Random;
|
||||
|
@ -100,6 +101,31 @@ public class TestPermission {
|
|||
conf = new Configuration();
|
||||
conf.set(FsPermission.UMASK_LABEL, "022");
|
||||
assertEquals(18, FsPermission.getUMask(conf).toShort());
|
||||
|
||||
// Test 5 - equivalent valid umask
|
||||
conf = new Configuration();
|
||||
conf.set(FsPermission.UMASK_LABEL, "0022");
|
||||
assertEquals(18, FsPermission.getUMask(conf).toShort());
|
||||
|
||||
// Test 6 - invalid umask
|
||||
conf = new Configuration();
|
||||
conf.set(FsPermission.UMASK_LABEL, "1222");
|
||||
try {
|
||||
FsPermission.getUMask(conf);
|
||||
fail("expect IllegalArgumentException happen");
|
||||
} catch (IllegalArgumentException e) {
|
||||
//pass, exception successfully trigger
|
||||
}
|
||||
|
||||
// Test 7 - invalid umask
|
||||
conf = new Configuration();
|
||||
conf.set(FsPermission.UMASK_LABEL, "01222");
|
||||
try {
|
||||
FsPermission.getUMask(conf);
|
||||
fail("expect IllegalArgumentException happen");
|
||||
} catch (IllegalArgumentException e) {
|
||||
//pass, exception successfully trigger
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Reference in New Issue