From fe69d3b8f71544740cc77657fd1eaf5e294a001a Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 4 Sep 2015 21:05:38 +0000 Subject: [PATCH] UPnP: Fix "content not allowed in trailing section" (tickets #481, #1653) patch from 'kay" in #1653, dev agreement received --- history.txt | 4 +++ .../src/net/i2p/router/RouterVersion.java | 4 +-- .../cybergarage/xml/parser/JaxpParser.java | 34 +++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/history.txt b/history.txt index 37d8b5652..db2c40c3d 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,7 @@ +2015-09-04 zzz + * UPnP: Fix "content not allowed in trailing section" + (tickets #481, #1653) + 2015-08-31 zzz * Data: Cache P256 and Ed255i9 key certificates * i2psnark: Change default sig type to Ed25519 diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index f6e6df3a5..ba403a9f3 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,10 +18,10 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 4; + public final static long BUILD = 5; /** for example "-test" */ - public final static String EXTRA = ""; + public final static String EXTRA = "-rc"; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; public static void main(String args[]) { System.out.println("I2P Router version: " + FULL_VERSION); diff --git a/router/java/src/org/cybergarage/xml/parser/JaxpParser.java b/router/java/src/org/cybergarage/xml/parser/JaxpParser.java index 332c5525f..af84b14f3 100644 --- a/router/java/src/org/cybergarage/xml/parser/JaxpParser.java +++ b/router/java/src/org/cybergarage/xml/parser/JaxpParser.java @@ -184,6 +184,40 @@ public class JaxpParser extends Parser } return rv; } + + /** @since 0.9.22 */ + @Override + public int read(byte[] b) throws IOException { + return this.read(b, 0, b.length); + } + + /** @since 0.9.22 */ + @Override + public int read(byte[] b, int off, int len) throws IOException { + if (b == null) { + throw new NullPointerException(); + } else if (off < 0 || len < 0 || len > b.length - off) { + throw new IndexOutOfBoundsException(); + } else if (len == 0) { + return 0; + } + + int rv = this.read(); + if (-1 == rv) { + return -1; + } + + int i = 1; + b[off] = (byte) rv; + for (; i < len; i++) { + rv = this.read(); + if (-1 == rv) { + break; + } + b[off + i] = (byte) rv; + } + return i; + } } /**