File tree Expand file tree Collapse file tree
javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap
muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -288,9 +288,18 @@ private static boolean isNormalizedResourcePath(String resourceName) {
288288 return false ;
289289 }
290290
291- for (String segment : resourceName .split ("/" , -1 )) {
292- if (segment .isEmpty () || segment .equals ("." ) || segment .equals (".." )) {
293- return false ;
291+ int segmentStart = 0 ;
292+ for (int i = 0 ; i <= resourceName .length (); i ++) {
293+ if (i == resourceName .length () || resourceName .charAt (i ) == '/' ) {
294+ int length = i - segmentStart ;
295+ if (length == 0
296+ || (length == 1 && resourceName .charAt (segmentStart ) == '.' )
297+ || (length == 2
298+ && resourceName .charAt (segmentStart ) == '.'
299+ && resourceName .charAt (segmentStart + 1 ) == '.' )) {
300+ return false ;
301+ }
302+ segmentStart = i + 1 ;
294303 }
295304 }
296305
Original file line number Diff line number Diff line change @@ -134,9 +134,18 @@ private static boolean isNormalizedResourcePath(String resourceName) {
134134 return false ;
135135 }
136136
137- for (String segment : resourceName .split ("/" , -1 )) {
138- if (segment .isEmpty () || segment .equals ("." ) || segment .equals (".." )) {
139- return false ;
137+ int segmentStart = 0 ;
138+ for (int i = 0 ; i <= resourceName .length (); i ++) {
139+ if (i == resourceName .length () || resourceName .charAt (i ) == '/' ) {
140+ int length = i - segmentStart ;
141+ if (length == 0
142+ || (length == 1 && resourceName .charAt (segmentStart ) == '.' )
143+ || (length == 2
144+ && resourceName .charAt (segmentStart ) == '.'
145+ && resourceName .charAt (segmentStart + 1 ) == '.' )) {
146+ return false ;
147+ }
148+ segmentStart = i + 1 ;
140149 }
141150 }
142151
You can’t perform that action at this time.
0 commit comments