You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pl...@apache.org on 2016/07/13 08:10:31 UTC

directory-kerby git commit: DIRKRB-594 Fix null pointer exception in kerby-xdr modlue.

Repository: directory-kerby
Updated Branches:
  refs/heads/trunk 8eeb1b653 -> aa29b0a8b


DIRKRB-594 Fix null pointer exception in kerby-xdr modlue.


Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/aa29b0a8
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/aa29b0a8
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/aa29b0a8

Branch: refs/heads/trunk
Commit: aa29b0a8bc98f14abf6b547c3bc0d45a89d805ac
Parents: 8eeb1b6
Author: plusplusjiajia <ji...@intel.com>
Authored: Wed Jul 13 16:16:19 2016 +0800
Committer: plusplusjiajia <ji...@intel.com>
Committed: Wed Jul 13 16:16:19 2016 +0800

----------------------------------------------------------------------
 .../org/apache/kerby/xdr/type/XdrSimple.java    |  6 ++++-
 .../apache/kerby/xdr/type/XdrStructType.java    | 11 ++++++---
 .../org/apache/kerby/xdr/type/XdrUnion.java     | 13 +++++++---
 .../java/org/apache/kerby/xdr/util/XdrUtil.java | 26 --------------------
 4 files changed, 22 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/aa29b0a8/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrSimple.java
----------------------------------------------------------------------
diff --git a/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrSimple.java b/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrSimple.java
index a3e13b1..9b62c8e 100644
--- a/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrSimple.java
+++ b/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrSimple.java
@@ -54,7 +54,11 @@ public abstract class XdrSimple<T> extends AbstractXdrType<T> {
     }
 
     protected void setBytes(byte[] bytes) {
-        this.bytes = bytes;
+        if (bytes != null) {
+            this.bytes = bytes.clone();
+        } else {
+            this.bytes = null;
+        }
     }
 
     protected byte[] encodeBody() throws IOException {

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/aa29b0a8/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrStructType.java
----------------------------------------------------------------------
diff --git a/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrStructType.java b/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrStructType.java
index 6bb74a5..c4672c3 100644
--- a/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrStructType.java
+++ b/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrStructType.java
@@ -41,10 +41,15 @@ public abstract class XdrStructType extends AbstractXdrType<XdrStructType> {
     public XdrStructType(XdrDataType xdrDataType,
                          final XdrFieldInfo[] fieldInfos) {
         super(xdrDataType);
-        this.fieldInfos = fieldInfos;
-        this.fields = new XdrType[fieldInfos.length];
+        if (fieldInfos != null) {
+            this.fieldInfos = fieldInfos.clone();
+            this.fields = new XdrType[fieldInfos.length];
 
-        getStructTypeInstance(this.fields, fieldInfos);
+            getStructTypeInstance(this.fields, fieldInfos);
+        } else {
+            this.fieldInfos = null;
+            this.fields = null;
+        }
     }
 
     protected abstract void getStructTypeInstance(final XdrType[] fields, final XdrFieldInfo[] fieldInfos);

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/aa29b0a8/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrUnion.java
----------------------------------------------------------------------
diff --git a/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrUnion.java b/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrUnion.java
index b7dc59c..20d4f83 100644
--- a/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrUnion.java
+++ b/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/type/XdrUnion.java
@@ -71,12 +71,17 @@ public abstract class XdrUnion extends AbstractXdrType<XdrUnion> {
     }
 
     public XdrUnion(XdrDataType xdrDataType,
-                         final XdrFieldInfo[] fieldInfos) {
+                    final XdrFieldInfo[] fieldInfos) {
         super(xdrDataType);
-        this.fieldInfos = fieldInfos;
-        this.fields = new XdrType[fieldInfos.length];
+        if (fieldInfos != null) {
+            this.fieldInfos = fieldInfos.clone();
+            this.fields = new XdrType[fieldInfos.length];
 
-        getUnionInstance(this.fields, fieldInfos);
+            getUnionInstance(this.fields, fieldInfos);
+        } else {
+            this.fieldInfos = null;
+            this.fields = null;
+        }
     }
 
     protected abstract void getUnionInstance(final XdrType[] fields, final XdrFieldInfo[] fieldInfos);

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/aa29b0a8/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/util/XdrUtil.java
----------------------------------------------------------------------
diff --git a/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/util/XdrUtil.java b/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/util/XdrUtil.java
deleted file mode 100644
index 880bbb0..0000000
--- a/kerby-common/kerby-xdr/src/main/java/org/apache/kerby/xdr/util/XdrUtil.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerby.xdr.util;
-
-public final class XdrUtil {
-    private XdrUtil() {
-        
-    }
-}