You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by mk...@apache.org on 2013/09/05 02:48:36 UTC

git commit: [flex-sdk] [refs/heads/develop] - FLEX-33710: Added index bounds checks.

Updated Branches:
  refs/heads/develop 4862c56fd -> b1d0359b6


FLEX-33710: Added index bounds checks.


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/b1d0359b
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/b1d0359b
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/b1d0359b

Branch: refs/heads/develop
Commit: b1d0359b6368670e82a843cec9992260a968ca9a
Parents: 4862c56
Author: Mark Kessler <Ke...@gmail.com>
Authored: Wed Sep 4 20:46:14 2013 -0400
Committer: Mark Kessler <Ke...@gmail.com>
Committed: Wed Sep 4 20:46:14 2013 -0400

----------------------------------------------------------------------
 .../spark/src/spark/components/DataGrid.as      | 26 +++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/b1d0359b/frameworks/projects/spark/src/spark/components/DataGrid.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/spark/src/spark/components/DataGrid.as b/frameworks/projects/spark/src/spark/components/DataGrid.as
index 54f005c..9fa5449 100644
--- a/frameworks/projects/spark/src/spark/components/DataGrid.as
+++ b/frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -4769,6 +4769,20 @@ public class DataGrid extends SkinnableContainerBase
 	 */ 
 	protected function isCellEditable(rowIndex:int, columnIndex:int):Boolean
 	{
+        //
+        //  Index out of bounds tests.
+        //
+        if (columnIndex < 0 || rowIndex < 0)
+        {
+            return false;
+        }
+
+        if (columnIndex >= columnsLength || rowIndex >= dataProvider.length)
+        {
+            return false;
+        }
+
+
 		var dataItem:Object = dataProvider.getItemAt(rowIndex);
 		var column:GridColumn = GridColumn(columns.getItemAt(columnIndex));
 		var dataField:String = column.dataField;
@@ -5021,18 +5035,24 @@ public class DataGrid extends SkinnableContainerBase
         for each (var columnIndex:int in columnIndices)
         {
             var col:GridColumn = this.getColumnAt(columnIndex);
+
             if (!col || (!col.dataField && (col.labelFunction == null) && (col.sortCompareFunction == null)))
                 return null;
-            
+
             var dataField:String = col.dataField;
             var isComplexDataField:Boolean = (dataField && (dataField.indexOf(".") != -1));
             var sortField:ISortField = findSortField(dataField, previousFields, isComplexDataField);
             
             if (!sortField)
-                sortField = col.sortField;  // constructs a new sortField
+            {
+                //Constructs a new sortField from the columns own sortField property.
+                sortField = col.sortField;
+            }
             else
+            {
                 sortField.descending = col.sortDescending;
-            
+            }
+
             fields.push(sortField);
         }