Răsfoiți Sursa

SEC-2410: AclFormattingUtils.printBinary handles negative

Rob Winch 11 ani în urmă
părinte
comite
5641ab98c1

+ 1 - 1
acl/src/main/java/org/springframework/security/acls/domain/AclFormattingUtils.java

@@ -98,7 +98,7 @@ public abstract class AclFormattingUtils {
     }
 
     private static String printBinary(int i, char on, char off) {
-        String s = Integer.toString(i, 2);
+        String s = Integer.toBinaryString(i);
         String pattern = Permission.THIRTY_TWO_RESERVED_OFF;
         String temp2 = pattern.substring(0, pattern.length() - s.length()) + s;
 

+ 8 - 0
acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java

@@ -124,4 +124,12 @@ public class AclFormattingUtilsTests extends TestCase {
 
         Assert.assertEquals("............................xxxx", AclFormattingUtils.printBinary(15, 'x'));
     }
+
+    public void testPrintBinaryNegative() {
+        Assert.assertEquals("*...............................", AclFormattingUtils.printBinary(0x80000000));
+    }
+
+    public void testPrintBinaryMinusOne() {
+        Assert.assertEquals("********************************", AclFormattingUtils.printBinary(0xffffffff));
+    }
 }