[Libreoffice-commits] online.git: loleaflet/src

Dennis Francis (via logerrit) logerrit at kemper.freedesktop.org
Sun Jul 5 08:03:19 UTC 2020


 loleaflet/src/layer/tile/CalcTileLayer.js |   27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

New commits:
commit 0d2dfafc89ed603458d8f3711f1130172ed944f9
Author:     Dennis Francis <dennis.francis at collabora.com>
AuthorDate: Sat May 16 15:09:51 2020 +0530
Commit:     Dennis Francis <dennis.francis at collabora.com>
CommitDate: Sun Jul 5 10:03:00 2020 +0200

    Make the newly added interfaces more robust
    
    against wrong argument counts/types.
    
    Change-Id: Ibfed2ba4f3e907ef8a038a3b13b3081cc6248c20
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97950
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Dennis Francis <dennis.francis at collabora.com>

diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js b/loleaflet/src/layer/tile/CalcTileLayer.js
index b7b122ae3..ee8173adf 100644
--- a/loleaflet/src/layer/tile/CalcTileLayer.js
+++ b/loleaflet/src/layer/tile/CalcTileLayer.js
@@ -1193,6 +1193,10 @@ L.SpanList = L.Class.extend({
 
 	addCustomDataForEachSpan: function (getCustomDataCallback) {
 
+		if (typeof getCustomDataCallback != 'function') {
+			return;
+		}
+
 		var prevIndex = -1;
 		this._spanlist.forEach(function (span) {
 			span.data = getCustomDataCallback(
@@ -1203,6 +1207,11 @@ L.SpanList = L.Class.extend({
 	},
 
 	getSpanDataByIndex: function (index) {
+
+		if (typeof index != 'number') {
+			return undefined;
+		}
+
 		var spanid = this._searchByIndex(index);
 		if (spanid == -1) {
 			return undefined;
@@ -1212,6 +1221,11 @@ L.SpanList = L.Class.extend({
 	},
 
 	getSpanDataByCustomDataField: function (value, fieldName) {
+
+		if (typeof value != 'number' || typeof fieldName != 'string' || !fieldName) {
+			return undefined;
+		}
+
 		var spanid = this._searchByCustomDataField(value, fieldName);
 		if (spanid == -1) {
 			return undefined;
@@ -1222,7 +1236,8 @@ L.SpanList = L.Class.extend({
 
 	forEachSpanInRange: function (start, end, callback) {
 
-		if (start > end) {
+		if (typeof start != 'number' || typeof end != 'number' ||
+			typeof callback != 'function' || start > end) {
 			return;
 		}
 
@@ -1279,6 +1294,10 @@ L.SpanList = L.Class.extend({
 				var valueStart = prevSpan ?
 					prevSpan.data[fieldName] + 1 : 0;
 				var valueEnd = curSpan.data[fieldName];
+				if (valueStart === undefined || valueEnd === undefined) {
+					// fieldName not present in the 'data' property.
+					return -1;
+				}
 				return (testValue < valueStart) ? -1 :
 					(valueEnd < testValue) ? 1 : 0;
 			});
@@ -1501,7 +1520,7 @@ L.DimensionOutlines = L.Class.extend({
 	// 'callback' is called with these parameters : (levelIdx, groupIdx, groupStart, groupEnd, groupHidden).
 	forEachGroupInRange: function (start, end, callback) {
 
-		if (start === undefined || end === undefined || callback === undefined) {
+		if (typeof start != 'number' || typeof end != 'number' || typeof callback != 'function') {
 			return;
 		}
 
@@ -1575,11 +1594,11 @@ L.DimensionOutlines = L.Class.extend({
 
 function binarySearch(array, key, directionProvider) {
 
-	if (array === undefined || !array.length) {
+	if (!Array.isArray(array) || !array.length) {
 		return -1;
 	}
 
-	if (directionProvider === undefined) {
+	if (typeof directionProvider != 'function') {
 		directionProvider = function (key, testvalue) {
 			return (key === testvalue) ? 0 :
 				(key < testvalue) ? -1 : 1;


More information about the Libreoffice-commits mailing list