Author: sebb
Date: Wed Nov 5 10:28:50 2008
New Revision: 711647
URL: http://svn.apache.org/viewvc?rev=711647&view=rev
Log:
Check for illegal hex characters
Modified:
jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/BinaryTCPClientImpl.java
Modified:
jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/BinaryTCPClientImpl.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/BinaryTCPClientImpl.java?rev=711647&r1=711646&r2=711647&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/BinaryTCPClientImpl.java
(original)
+++
jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/BinaryTCPClientImpl.java
Wed Nov 5 10:28:50 2008
@@ -65,17 +65,22 @@
/**
* Convert hex string to binary byte array.
*
- * @param s - hex-encoded binary string
- * @return Byte array containing binary representation of input
hex-encoded string
- */
- public static final byte[] hexStringToByteArray(String s) {
- if (s.length() % 2 == 0) {
- char[] sc = s.toCharArray();
+ * @param hexEncodedBinary - hex-encoded binary string
+ * @return Byte array containing binary representation of input
hex-encoded string
+ * @throws IllegalArgumentException if string is not an even number of hex
digits
+ */
+ public static final byte[] hexStringToByteArray(String hexEncodedBinary) {
+ if (hexEncodedBinary.length() % 2 == 0) {
+ char[] sc = hexEncodedBinary.toCharArray();
byte[] ba = new byte[sc.length / 2];
for (int i = 0; i < ba.length; i++) {
int nibble0 = Character.digit(sc[i * 2], 16);
int nibble1 = Character.digit(sc[i * 2 + 1], 16);
+ if (nibble0 == -1 || nibble1 == -1){
+ throw new IllegalArgumentException(
+ "Hex-encoded binary string contains an invalid hex digit
in '"+sc[i * 2]+sc[i * 2 + 1]+"'");
+ }
ba[i] = (byte) ((nibble0 << 4) | (nibble1));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]