From 2e03e74923780857e400d5afe390a0d910991a8a Mon Sep 17 00:00:00 2001
From: starlet-dx <15929766099@163.com>
Date: Wed, 8 Mar 2023 10:26:28 +0800
Subject: [PATCH] Update to 1.32 for fix CVE-2022-41854,CVE-2022-25857 and
CVE-2022-38749-to-CVE-2022-38752
---
...ed-base64coder-with-java.util.Base64.patch | 418 ++++++++++++++++++
...gdata-java-client-classes-with-commo.patch | 60 +++
reader_bom_test_fix.patch | 46 ++
snakeyaml-1.17.tar.bz2 | Bin 291351 -> 0 bytes
snakeyaml-1.32.tar.gz | Bin 0 -> 402000 bytes
snakeyaml.spec | 61 ++-
6 files changed, 572 insertions(+), 13 deletions(-)
create mode 100644 0001-replace-bundled-base64coder-with-java.util.Base64.patch
create mode 100644 0002-Replace-bundled-gdata-java-client-classes-with-commo.patch
create mode 100644 reader_bom_test_fix.patch
delete mode 100644 snakeyaml-1.17.tar.bz2
create mode 100644 snakeyaml-1.32.tar.gz
diff --git a/0001-replace-bundled-base64coder-with-java.util.Base64.patch b/0001-replace-bundled-base64coder-with-java.util.Base64.patch
new file mode 100644
index 0000000..59c627e
--- /dev/null
+++ b/0001-replace-bundled-base64coder-with-java.util.Base64.patch
@@ -0,0 +1,418 @@
+diff --git a/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java b/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
+index b34011c..b549448 100644
+--- a/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
++++ b/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
+@@ -15,6 +15,7 @@ package org.yaml.snakeyaml.constructor;
+
+ import java.math.BigInteger;
+ import java.util.ArrayList;
++import java.util.Base64;
+ import java.util.Calendar;
+ import java.util.HashMap;
+ import java.util.Iterator;
+@@ -28,7 +29,6 @@ import java.util.regex.Matcher;
+ import java.util.regex.Pattern;
+ import org.yaml.snakeyaml.LoaderOptions;
+ import org.yaml.snakeyaml.error.YAMLException;
+-import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
+ import org.yaml.snakeyaml.nodes.MappingNode;
+ import org.yaml.snakeyaml.nodes.Node;
+ import org.yaml.snakeyaml.nodes.NodeId;
+@@ -385,7 +385,7 @@ public class SafeConstructor extends BaseConstructor {
+ public Object construct(Node node) {
+ // Ignore white spaces for base64 encoded scalar
+ String noWhiteSpaces = constructScalar((ScalarNode) node).replaceAll("\\s", "");
+- byte[] decoded = Base64Coder.decode(noWhiteSpaces.toCharArray());
++ byte[] decoded = Base64.getDecoder().decode(noWhiteSpaces);
+ return decoded;
+ }
+ }
+diff --git a/src/main/java/org/yaml/snakeyaml/external/biz/base64Coder/Base64Coder.java b/src/main/java/org/yaml/snakeyaml/external/biz/base64Coder/Base64Coder.java
+deleted file mode 100644
+index db43b47..0000000
+--- a/src/main/java/org/yaml/snakeyaml/external/biz/base64Coder/Base64Coder.java
++++ /dev/null
+@@ -1,281 +0,0 @@
+-// Copyright 2003-2010 Christian d'Heureuse, Inventec Informatik AG, Zurich, Switzerland
+-// www.source-code.biz, www.inventec.ch/chdh
+-//
+-// This module is multi-licensed and may be used under the terms
+-// of any of the following licenses:
+-//
+-// EPL, Eclipse Public License, V1.0 or later, http://www.eclipse.org/legal
+-// LGPL, GNU Lesser General Public License, V2.1 or later, http://www.gnu.org/licenses/lgpl.html
+-// GPL, GNU General Public License, V2 or later, http://www.gnu.org/licenses/gpl.html
+-// AL, Apache License, V2.0 or later, http://www.apache.org/licenses
+-// BSD, BSD License, http://www.opensource.org/licenses/bsd-license.php
+-//
+-// Please contact the author if you need another license.
+-// This module is provided "as is", without warranties of any kind.
+-
+-package org.yaml.snakeyaml.external.biz.base64Coder;
+-
+-/**
+- * A Base64 encoder/decoder.
+- *
+- *
+- * This class is used to encode and decode data in Base64 format as described in RFC 1521.
+- *
+- *
+- * Project home page: www.
+- * source-code.biz/base64coder/java
+- * Author: Christian d'Heureuse, Inventec Informatik AG, Zurich, Switzerland
+- * Multi-licensed: EPL / LGPL / GPL / AL / BSD.
+- */
+-public class Base64Coder {
+-
+- // The line separator string of the operating system.
+- private static final String systemLineSeparator = System.getProperty("line.separator");
+-
+- // Mapping table from 6-bit nibbles to Base64 characters.
+- private static final char[] map1 = new char[64];
+-
+- static {
+- int i = 0;
+- for (char c = 'A'; c <= 'Z'; c++) {
+- map1[i++] = c;
+- }
+- for (char c = 'a'; c <= 'z'; c++) {
+- map1[i++] = c;
+- }
+- for (char c = '0'; c <= '9'; c++) {
+- map1[i++] = c;
+- }
+- map1[i++] = '+';
+- map1[i++] = '/';
+- }
+-
+- // Mapping table from Base64 characters to 6-bit nibbles.
+- private static final byte[] map2 = new byte[128];
+-
+- static {
+- for (int i = 0; i < map2.length; i++) {
+- map2[i] = -1;
+- }
+- for (int i = 0; i < 64; i++) {
+- map2[map1[i]] = (byte) i;
+- }
+- }
+-
+- /**
+- * Encodes a string into Base64 format. No blanks or line breaks are inserted.
+- *
+- * @param s A String to be encoded.
+- * @return A String containing the Base64 encoded data.
+- */
+- public static String encodeString(String s) {
+- return new String(encode(s.getBytes()));
+- }
+-
+- /**
+- * Encodes a byte array into Base 64 format and breaks the output into lines of 76 characters.
+- * This method is compatible with sun.misc.BASE64Encoder.encodeBuffer(byte[]).
+- *
+- * @param in An array containing the data bytes to be encoded.
+- * @return A String containing the Base64 encoded data, broken into lines.
+- */
+- public static String encodeLines(byte[] in) {
+- return encodeLines(in, 0, in.length, 76, systemLineSeparator);
+- }
+-
+- /**
+- * Encodes a byte array into Base 64 format and breaks the output into lines.
+- *
+- * @param in An array containing the data bytes to be encoded.
+- * @param iOff Offset of the first byte in in to be processed.
+- * @param iLen Number of bytes to be processed in in, starting at iOff.
+- * @param lineLen Line length for the output data. Should be a multiple of 4.
+- * @param lineSeparator The line separator to be used to separate the output lines.
+- * @return A String containing the Base64 encoded data, broken into lines.
+- */
+- public static String encodeLines(byte[] in, int iOff, int iLen, int lineLen,
+- String lineSeparator) {
+- int blockLen = (lineLen * 3) / 4;
+- if (blockLen <= 0) {
+- throw new IllegalArgumentException();
+- }
+- int lines = (iLen + blockLen - 1) / blockLen;
+- int bufLen = ((iLen + 2) / 3) * 4 + lines * lineSeparator.length();
+- StringBuilder buf = new StringBuilder(bufLen);
+- int ip = 0;
+- while (ip < iLen) {
+- int l = Math.min(iLen - ip, blockLen);
+- buf.append(encode(in, iOff + ip, l));
+- buf.append(lineSeparator);
+- ip += l;
+- }
+- return buf.toString();
+- }
+-
+- /**
+- * Encodes a byte array into Base64 format. No blanks or line breaks are inserted in the output.
+- *
+- * @param in An array containing the data bytes to be encoded.
+- * @return A character array containing the Base64 encoded data.
+- */
+- public static char[] encode(byte[] in) {
+- return encode(in, 0, in.length);
+- }
+-
+- /**
+- * Encodes a byte array into Base64 format. No blanks or line breaks are inserted in the output.
+- *
+- * @param in An array containing the data bytes to be encoded.
+- * @param iLen Number of bytes to process in in.
+- * @return A character array containing the Base64 encoded data.
+- */
+- public static char[] encode(byte[] in, int iLen) {
+- return encode(in, 0, iLen);
+- }
+-
+- /**
+- * Encodes a byte array into Base64 format. No blanks or line breaks are inserted in the output.
+- *
+- * @param in An array containing the data bytes to be encoded.
+- * @param iOff Offset of the first byte in in to be processed.
+- * @param iLen Number of bytes to process in in, starting at iOff.
+- * @return A character array containing the Base64 encoded data.
+- */
+- public static char[] encode(byte[] in, int iOff, int iLen) {
+- int oDataLen = (iLen * 4 + 2) / 3; // output length without padding
+- int oLen = ((iLen + 2) / 3) * 4; // output length including padding
+- char[] out = new char[oLen];
+- int ip = iOff;
+- int iEnd = iOff + iLen;
+- int op = 0;
+- while (ip < iEnd) {
+- int i0 = in[ip++] & 0xff;
+- int i1 = ip < iEnd ? in[ip++] & 0xff : 0;
+- int i2 = ip < iEnd ? in[ip++] & 0xff : 0;
+- int o0 = i0 >>> 2;
+- int o1 = ((i0 & 3) << 4) | (i1 >>> 4);
+- int o2 = ((i1 & 0xf) << 2) | (i2 >>> 6);
+- int o3 = i2 & 0x3F;
+- out[op++] = map1[o0];
+- out[op++] = map1[o1];
+- out[op] = op < oDataLen ? map1[o2] : '=';
+- op++;
+- out[op] = op < oDataLen ? map1[o3] : '=';
+- op++;
+- }
+- return out;
+- }
+-
+- /**
+- * Decodes a string from Base64 format. No blanks or line breaks are allowed within the Base64
+- * encoded input data.
+- *
+- * @param s A Base64 String to be decoded.
+- * @return A String containing the decoded data.
+- * @throws IllegalArgumentException If the input is not valid Base64 encoded data.
+- */
+- public static String decodeString(String s) {
+- return new String(decode(s));
+- }
+-
+- /**
+- * Decodes a byte array from Base64 format and ignores line separators, tabs and blanks. CR, LF,
+- * Tab and Space characters are ignored in the input data. This method is compatible with
+- * sun.misc.BASE64Decoder.decodeBuffer(String).
+- *
+- * @param s A Base64 String to be decoded.
+- * @return An array containing the decoded data bytes.
+- * @throws IllegalArgumentException If the input is not valid Base64 encoded data.
+- */
+- public static byte[] decodeLines(String s) {
+- char[] buf = new char[s.length()];
+- int p = 0;
+- for (int ip = 0; ip < s.length(); ip++) {
+- char c = s.charAt(ip);
+- if (c != ' ' && c != '\r' && c != '\n' && c != '\t') {
+- buf[p++] = c;
+- }
+- }
+- return decode(buf, 0, p);
+- }
+-
+- /**
+- * Decodes a byte array from Base64 format. No blanks or line breaks are allowed within the Base64
+- * encoded input data.
+- *
+- * @param s A Base64 String to be decoded.
+- * @return An array containing the decoded data bytes.
+- * @throws IllegalArgumentException If the input is not valid Base64 encoded data.
+- */
+- public static byte[] decode(String s) {
+- return decode(s.toCharArray());
+- }
+-
+- /**
+- * Decodes a byte array from Base64 format. No blanks or line breaks are allowed within the Base64
+- * encoded input data.
+- *
+- * @param in A character array containing the Base64 encoded data.
+- * @return An array containing the decoded data bytes.
+- * @throws IllegalArgumentException If the input is not valid Base64 encoded data.
+- */
+- public static byte[] decode(char[] in) {
+- return decode(in, 0, in.length);
+- }
+-
+- /**
+- * Decodes a byte array from Base64 format. No blanks or line breaks are allowed within the Base64
+- * encoded input data.
+- *
+- * @param in A character array containing the Base64 encoded data.
+- * @param iOff Offset of the first character in in to be processed.
+- * @param iLen Number of characters to process in in, starting at iOff.
+- * @return An array containing the decoded data bytes.
+- * @throws IllegalArgumentException If the input is not valid Base64 encoded data.
+- */
+- public static byte[] decode(char[] in, int iOff, int iLen) {
+- if (iLen % 4 != 0) {
+- throw new IllegalArgumentException(
+- "Length of Base64 encoded input string is not a multiple of 4.");
+- }
+- while (iLen > 0 && in[iOff + iLen - 1] == '=') {
+- iLen--;
+- }
+- int oLen = (iLen * 3) / 4;
+- byte[] out = new byte[oLen];
+- int ip = iOff;
+- int iEnd = iOff + iLen;
+- int op = 0;
+- while (ip < iEnd) {
+- int i0 = in[ip++];
+- int i1 = in[ip++];
+- int i2 = ip < iEnd ? in[ip++] : 'A';
+- int i3 = ip < iEnd ? in[ip++] : 'A';
+- if (i0 > 127 || i1 > 127 || i2 > 127 || i3 > 127) {
+- throw new IllegalArgumentException("Illegal character in Base64 encoded data.");
+- }
+- int b0 = map2[i0];
+- int b1 = map2[i1];
+- int b2 = map2[i2];
+- int b3 = map2[i3];
+- if (b0 < 0 || b1 < 0 || b2 < 0 || b3 < 0) {
+- throw new IllegalArgumentException("Illegal character in Base64 encoded data.");
+- }
+- int o0 = (b0 << 2) | (b1 >>> 4);
+- int o1 = ((b1 & 0xf) << 4) | (b2 >>> 2);
+- int o2 = ((b2 & 3) << 6) | b3;
+- out[op++] = (byte) o0;
+- if (op < oLen) {
+- out[op++] = (byte) o1;
+- }
+- if (op < oLen) {
+- out[op++] = (byte) o2;
+- }
+- }
+- return out;
+- }
+-
+- // Dummy constructor.
+- private Base64Coder() {}
+-
+-} // end class Base64Coder
+diff --git a/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java b/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java
+index b46e07f..5a80523 100644
+--- a/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java
++++ b/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java
+@@ -17,6 +17,7 @@ import java.math.BigInteger;
+ import java.nio.charset.StandardCharsets;
+ import java.util.ArrayList;
+ import java.util.Arrays;
++import java.util.Base64;
+ import java.util.Calendar;
+ import java.util.Date;
+ import java.util.HashMap;
+@@ -30,7 +31,6 @@ import java.util.UUID;
+ import java.util.regex.Pattern;
+ import org.yaml.snakeyaml.DumperOptions;
+ import org.yaml.snakeyaml.error.YAMLException;
+-import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
+ import org.yaml.snakeyaml.nodes.Node;
+ import org.yaml.snakeyaml.nodes.Tag;
+ import org.yaml.snakeyaml.reader.StreamReader;
+@@ -118,7 +118,6 @@ class SafeRepresenter extends BaseRepresenter {
+ if (nonPrintableStyle == DumperOptions.NonPrintableStyle.BINARY
+ && !StreamReader.isPrintable(value)) {
+ tag = Tag.BINARY;
+- char[] binary;
+ final byte[] bytes = value.getBytes(StandardCharsets.UTF_8);
+ // sometimes above will just silently fail - it will return incomplete data
+ // it happens when String has invalid code points
+@@ -127,8 +126,7 @@ class SafeRepresenter extends BaseRepresenter {
+ if (!checkValue.equals(value)) {
+ throw new YAMLException("invalid string value has occurred");
+ }
+- binary = Base64Coder.encode(bytes);
+- value = String.valueOf(binary);
++ value = Base64.getEncoder().encodeToString(bytes);
+ style = DumperOptions.ScalarStyle.LITERAL;
+ }
+ // if no other scalar style is explicitly set, use literal style for
+@@ -449,8 +447,8 @@ class SafeRepresenter extends BaseRepresenter {
+ protected class RepresentByteArray implements Represent {
+
+ public Node representData(Object data) {
+- char[] binary = Base64Coder.encode((byte[]) data);
+- return representScalar(Tag.BINARY, String.valueOf(binary), DumperOptions.ScalarStyle.LITERAL);
++ String binary = Base64.getEncoder().encodeToString((byte[]) data);
++ return representScalar(Tag.BINARY, binary, DumperOptions.ScalarStyle.LITERAL);
+ }
+ }
+
+diff --git a/src/test/java/biz/source_code/base64Coder/Base64CoderTest.java b/src/test/java/biz/source_code/base64Coder/Base64CoderTest.java
+index 295eb72..dbe814b 100644
+--- a/src/test/java/biz/source_code/base64Coder/Base64CoderTest.java
++++ b/src/test/java/biz/source_code/base64Coder/Base64CoderTest.java
+@@ -13,10 +13,10 @@
+ */
+ package biz.source_code.base64Coder;
+
++import java.util.Base64;
+ import java.io.UnsupportedEncodingException;
+ import java.nio.charset.StandardCharsets;
+ import junit.framework.TestCase;
+-import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
+
+ public class Base64CoderTest extends TestCase {
+
+@@ -30,10 +30,10 @@ public class Base64CoderTest extends TestCase {
+
+ public void testFailure1() throws UnsupportedEncodingException {
+ try {
+- Base64Coder.decode("YQ=".toCharArray());
++ Base64.getDecoder().decode("YQ=".getBytes(StandardCharsets.UTF_8));
+ fail();
+ } catch (Exception e) {
+- assertEquals("Length of Base64 encoded input string is not a multiple of 4.", e.getMessage());
++ assertEquals("Input byte array has wrong 4-byte ending unit", e.getMessage());
+ }
+ }
+
+@@ -51,18 +51,18 @@ public class Base64CoderTest extends TestCase {
+
+ private void checkInvalid(String encoded) {
+ try {
+- Base64Coder.decode(encoded.toCharArray());
++ Base64.getDecoder().decode(encoded.getBytes(StandardCharsets.UTF_8));
+ fail("Illegal chanracter.");
+ } catch (Exception e) {
+- assertEquals("Illegal character in Base64 encoded data.", e.getMessage());
++ assertTrue(e.getMessage().startsWith("Illegal base64 character"));
+ }
+ }
+
+ private void check(String text, String encoded) throws UnsupportedEncodingException {
+- char[] s1 = Base64Coder.encode(text.getBytes(StandardCharsets.UTF_8));
+- String t1 = new String(s1);
++ byte[] s1 = Base64.getEncoder().encode(text.getBytes(StandardCharsets.UTF_8));
++ String t1 = new String(s1, StandardCharsets.UTF_8);
+ assertEquals(encoded, t1);
+- byte[] s2 = Base64Coder.decode(encoded.toCharArray());
++ byte[] s2 = Base64.getDecoder().decode(encoded.getBytes(StandardCharsets.UTF_8));
+ String t2 = new String(s2, StandardCharsets.UTF_8);
+ assertEquals(text, t2);
+ }
diff --git a/0002-Replace-bundled-gdata-java-client-classes-with-commo.patch b/0002-Replace-bundled-gdata-java-client-classes-with-commo.patch
new file mode 100644
index 0000000..0c63730
--- /dev/null
+++ b/0002-Replace-bundled-gdata-java-client-classes-with-commo.patch
@@ -0,0 +1,60 @@
+diff --git a/src/main/java/org/yaml/snakeyaml/util/UriEncoder.java b/src/main/java/org/yaml/snakeyaml/util/UriEncoder.java
+index 02c3e43..5ccb842 100644
+--- a/src/main/java/org/yaml/snakeyaml/util/UriEncoder.java
++++ b/src/main/java/org/yaml/snakeyaml/util/UriEncoder.java
+@@ -22,18 +22,33 @@ import java.nio.charset.CharsetDecoder;
+ import java.nio.charset.CodingErrorAction;
+ import java.nio.charset.StandardCharsets;
+ import org.yaml.snakeyaml.error.YAMLException;
+-import org.yaml.snakeyaml.external.com.google.gdata.util.common.base.Escaper;
+-import org.yaml.snakeyaml.external.com.google.gdata.util.common.base.PercentEscaper;
++import java.util.BitSet;
++
++import org.apache.commons.codec.net.URLCodec;
+
+ public abstract class UriEncoder {
+
++ // default safe characters which can appear within URI and shouldn't be escaped
++ private static final BitSet allowedCharacters = new BitSet(256);
++
++ static {
++ for (int i = 'a'; i <= 'z'; i++) {
++ allowedCharacters.set(i);
++ }
++ for (int i = 'A'; i <= 'Z'; i++) {
++ allowedCharacters.set(i);
++ }
++ for (int i = '0'; i <= '9'; i++) {
++ allowedCharacters.set(i);
++ }
++ // http://yaml.org/spec/1.1/#escaping%20in%20URI/
++ for (char c : "-_.!~*'()@:$&,;=/[]".toCharArray()) {
++ allowedCharacters.set(c);
++ }
++ }
++
+ private static final CharsetDecoder UTF8Decoder =
+ StandardCharsets.UTF_8.newDecoder().onMalformedInput(CodingErrorAction.REPORT);
+- // Include the [] chars to the SAFEPATHCHARS_URLENCODER to avoid
+- // its escape as required by spec. See
+- // http://yaml.org/spec/1.1/#escaping%20in%20URI/
+- private static final String SAFE_CHARS = PercentEscaper.SAFEPATHCHARS_URLENCODER + "[]/";
+- private static final Escaper escaper = new PercentEscaper(SAFE_CHARS, false);
+
+ /**
+ * Escape special characters with '%'
+@@ -42,7 +57,13 @@ public abstract class UriEncoder {
+ * @return encoded URI
+ */
+ public static String encode(String uri) {
+- return escaper.escape(uri);
++ try {
++ byte[] rawdata = URLCodec.encodeUrl(allowedCharacters,
++ uri.getBytes("UTF-8"));
++ return new String(rawdata, 0, rawdata.length, "US-ASCII");
++ } catch (UnsupportedEncodingException e) {
++ throw new YAMLException(e);
++ }
+ }
+
+ /**
diff --git a/reader_bom_test_fix.patch b/reader_bom_test_fix.patch
new file mode 100644
index 0000000..96509f2
--- /dev/null
+++ b/reader_bom_test_fix.patch
@@ -0,0 +1,46 @@
+diff --git a/src/test/java/org/yaml/snakeyaml/reader/ReaderBomTest.java b/src/test/java/org/yaml/snakeyaml/reader/ReaderBomTest.java
+index c7396c2..375bb75 100644
+--- a/src/test/java/org/yaml/snakeyaml/reader/ReaderBomTest.java
++++ b/src/test/java/org/yaml/snakeyaml/reader/ReaderBomTest.java
+@@ -77,41 +77,4 @@ public class ReaderBomTest extends TestCase {
+ input.close();
+ }
+
+- public void testUnicodeLeBom() throws IOException {
+- File file = new File("src/test/resources/reader/unicode-16le.txt");
+- assertTrue("Test file not found: " + file.getAbsolutePath(), file.exists());
+- InputStream input = new FileInputStream(file);
+- UnicodeReader unicodeReader = new UnicodeReader(input);
+- StreamReader reader = new StreamReader(unicodeReader);
+- assertEquals('t', reader.peek());
+- reader.forward(1);
+- assertEquals('e', reader.peek());
+- reader.forward(1);
+- assertEquals('s', reader.peek());
+- reader.forward(1);
+- assertEquals('t', reader.peek());
+- reader.forward(1);
+- assertEquals('\u0000', reader.peek());
+- assertEquals(StandardCharsets.UTF_16LE, Charset.forName(unicodeReader.getEncoding()));
+- input.close();
+- }
+-
+- public void testUnicodeBeBom() throws IOException {
+- File file = new File("src/test/resources/reader/unicode-16be.txt");
+- assertTrue("Test file not found: " + file.getAbsolutePath(), file.exists());
+- InputStream input = new FileInputStream(file);
+- UnicodeReader unicodeReader = new UnicodeReader(input);
+- StreamReader reader = new StreamReader(unicodeReader);
+- assertEquals('t', reader.peek());
+- reader.forward(1);
+- assertEquals('e', reader.peek());
+- reader.forward(1);
+- assertEquals('s', reader.peek());
+- reader.forward(1);
+- assertEquals('t', reader.peek());
+- reader.forward(1);
+- assertEquals('\u0000', reader.peek());
+- assertEquals(StandardCharsets.UTF_16BE, Charset.forName(unicodeReader.getEncoding()));
+- input.close();
+- }
+ }
diff --git a/snakeyaml-1.17.tar.bz2 b/snakeyaml-1.17.tar.bz2
deleted file mode 100644
index b4b7dc8a70f5ce8c31184c78bbbec72fd9c0c0fc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 291351
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