[Bundle] Prevent null dereference and handle null array values
authorSidharth Gupta <sid92.gupta@samsung.com>
Thu, 26 May 2016 06:17:54 +0000 (15:17 +0900)
committerSidharth Gupta <sid92.gupta@samsung.com>
Thu, 26 May 2016 07:31:22 +0000 (16:31 +0900)
Signed-off-by: Sidharth Gupta <sid92.gupta@samsung.com>
Change-Id: I9d33e74b5d840d24885aa22eb17b4201d4b9e861

Tizen.Applications/Tizen.Applications/Bundle.cs [changed mode: 0755->0644]

old mode 100755 (executable)
new mode 100644 (file)
index acebd0b..793fe75
@@ -271,7 +271,7 @@ namespace Tizen.Applications
         {
             if (!_keys.Contains(key))
             {
-                string[] valueArray = value.ToArray();
+                string[] valueArray = value.Select(v => v == null ? string.Empty : v).ToArray();
                 int ret = Interop.Bundle.AddStringArray(_handle, key, valueArray, valueArray.Count());
                 BundleErrorFactory.CheckAndThrowException(ret, _handle);
                 _keys.Add(key);
@@ -315,7 +315,10 @@ namespace Tizen.Applications
                         IntPtr stringPtr;
                         int retString = Interop.Bundle.GetString(_handle, key, out stringPtr);
                         BundleErrorFactory.CheckAndThrowException(retString, _handle);
-                        return Marshal.PtrToStringAuto(stringPtr);
+                        string stringValue = Marshal.PtrToStringAuto(stringPtr);
+                        if (stringValue == null)
+                            return string.Empty;
+                        return stringValue;
 
                     case (int)BundleType.StringArray:
                         // get string array