You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2014/04/18 16:13:45 UTC
svn commit: r1588476 - in /commons/proper/compress/trunk/src: changes/
main/java/org/apache/commons/compress/archivers/cpio/
main/java/org/apache/commons/compress/archivers/zip/
Author: bodewig
Date: Fri Apr 18 14:13:44 2014
New Revision: 1588476
URL: http://svn.apache.org/r1588476
Log:
COMPRESS-273 sprinkle in a few null checks
Modified:
commons/proper/compress/trunk/src/changes/changes.xml
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/cpio/CpioArchiveEntry.java
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnrecognizedExtraField.java
Modified: commons/proper/compress/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/changes/changes.xml?rev=1588476&r1=1588475&r2=1588476&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/changes/changes.xml (original)
+++ commons/proper/compress/trunk/src/changes/changes.xml Fri Apr 18 14:13:44 2014
@@ -71,6 +71,9 @@ The <action> type attribute can be add,u
ChangeSet#delete and deleteDir now properly deal with unnamed
entries.
</action>
+ <action type="fix" date="2014-04-13" issue="COMPRESS-273">
+ Added a few null checks to improve robustness.
+ </action>
</release>
<release version="1.8" date="2014-03-12"
description="Release 1.8">
Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/cpio/CpioArchiveEntry.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/cpio/CpioArchiveEntry.java?rev=1588476&r1=1588475&r2=1588476&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/cpio/CpioArchiveEntry.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/cpio/CpioArchiveEntry.java Fri Apr 18 14:13:44 2014
@@ -469,7 +469,10 @@ public class CpioArchiveEntry implements
*/
public int getHeaderPadCount(){
if (this.alignmentBoundary == 0) { return 0; }
- int size = this.headerSize+this.name.length()+1; // Name has terminating null
+ int size = this.headerSize + 1; // Name has terminating null
+ if (name != null) {
+ size += name.length();
+ }
int remain = size % this.alignmentBoundary;
if (remain > 0){
return this.alignmentBoundary - remain;
Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java?rev=1588476&r1=1588475&r2=1588476&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java Fri Apr 18 14:13:44 2014
@@ -143,7 +143,7 @@ public abstract class AbstractUnicodeExt
if (data == null) {
assembleData();
}
- return new ZipShort(data.length);
+ return new ZipShort(data != null ? data.length : 0);
}
public byte[] getLocalFileDataData() {
Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java?rev=1588476&r1=1588475&r2=1588476&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java Fri Apr 18 14:13:44 2014
@@ -210,13 +210,18 @@ public class ExtraFieldUtils {
0, result, start, 2);
System.arraycopy(data[i].getLocalFileDataLength().getBytes(),
0, result, start + 2, 2);
+ start += WORD;
byte[] local = data[i].getLocalFileDataData();
- System.arraycopy(local, 0, result, start + WORD, local.length);
- start += local.length + WORD;
+ if (local != null) {
+ System.arraycopy(local, 0, result, start, local.length);
+ start += local.length;
+ }
}
if (lastIsUnparseableHolder) {
byte[] local = data[data.length - 1].getLocalFileDataData();
- System.arraycopy(local, 0, result, start, local.length);
+ if (local != null) {
+ System.arraycopy(local, 0, result, start, local.length);
+ }
}
return result;
}
@@ -243,13 +248,18 @@ public class ExtraFieldUtils {
0, result, start, 2);
System.arraycopy(data[i].getCentralDirectoryLength().getBytes(),
0, result, start + 2, 2);
+ start += WORD;
byte[] local = data[i].getCentralDirectoryData();
- System.arraycopy(local, 0, result, start + WORD, local.length);
- start += local.length + WORD;
+ if (local != null) {
+ System.arraycopy(local, 0, result, start, local.length);
+ start += local.length;
+ }
}
if (lastIsUnparseableHolder) {
byte[] local = data[data.length - 1].getCentralDirectoryData();
- System.arraycopy(local, 0, result, start, local.length);
+ if (local != null) {
+ System.arraycopy(local, 0, result, start, local.length);
+ }
}
return result;
}
Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnrecognizedExtraField.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnrecognizedExtraField.java?rev=1588476&r1=1588475&r2=1588476&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnrecognizedExtraField.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnrecognizedExtraField.java Fri Apr 18 14:13:44 2014
@@ -69,7 +69,7 @@ public class UnrecognizedExtraField impl
* @return the length of the local data
*/
public ZipShort getLocalFileDataLength() {
- return new ZipShort(localData.length);
+ return new ZipShort(localData != null ? localData.length : 0);
}
/**