You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pa...@apache.org on 2019/05/15 20:21:27 UTC

svn commit: r1859331 - /felix/trunk/webconsole/src/main/resources/res/ui/bundles.js

Author: pauls
Date: Wed May 15 20:21:27 2019
New Revision: 1859331

URL: http://svn.apache.org/viewvc?rev=1859331&view=rev
Log:
FELIX-6128: escape bundle name and manifest headers (patch provided by Ashok Kumar)

Modified:
    felix/trunk/webconsole/src/main/resources/res/ui/bundles.js

Modified: felix/trunk/webconsole/src/main/resources/res/ui/bundles.js
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/resources/res/ui/bundles.js?rev=1859331&r1=1859330&r2=1859331&view=diff
==============================================================================
--- felix/trunk/webconsole/src/main/resources/res/ui/bundles.js (original)
+++ felix/trunk/webconsole/src/main/resources/res/ui/bundles.js Wed May 15 20:21:27 2019
@@ -71,7 +71,11 @@ function renderData( eventData, filter )
 	// show dialog on error
 	if (eventData.error) bundleOpError.dialog('open').find('pre').text(eventData.error)
 }
-
+function escapeHtml(str) {
+    var div = document.createElement('div');
+    div.appendChild(document.createTextNode(str));
+    return div.innerHTML;
+}
 function entry( /* Object */ bundle, filter ) {
 	var matches = !(filter && typeof filter.test == 'function') ? true :
 		filter.test(bundle.id) || filter.test(bundle.name) || filter.test(bundle.symbolicName) || filter.test(bundle.version) || filter.test(bundle.category);
@@ -92,8 +96,7 @@ function stateString(b) {
 function entryInternal( /* Object */ bundle ) {
 	var tr = bundlesTemplate.clone();
     var id = bundle.id;
-    var name = bundle.name + '<span class="symName">' + bundle.symbolicName + '</span>';
-
+    var name = escapeHtml(bundle.name) + '<span class="symName">' + bundle.symbolicName + '</span>';
 	tr.attr('id', 'entry'+id);
 	tr.children('td:eq(0)').text(id);
 	tr.find('.bIcon').attr('id', 'img'+id).click(function() {showDetails(id)});
@@ -205,7 +208,7 @@ function renderDetails( data ) {
         			if (ie.type == 'link' || ie.type == 'resource') {
         				txt += '<a href="' + ie.value + '">' + ie.name + '</a>';
         			} else {
-        				txt += ie.name + " = " + ie.value;
+        				txt += ie.name + " = " + escapeHtml(ie.value);
         			}
         			txt += '</div>';
         		});
@@ -241,7 +244,7 @@ function renderDetailsEntry(key, value)
 	                } else if (xv.substring(0, 7) == "ERROR: ") {
 	                	txt += "<span class='ui-state-error-text'>" + xv.substring(6) + "</span>";
 	                } else {
-	                	txt +=  xv;
+	                	txt +=  key=='Manifest Headers'? escapeHtml(xv) : xv ;
 	                }
                     i++;
                 }