diff --git a/java/ql/src/semmle/code/java/frameworks/JaxWS.qll b/java/ql/src/semmle/code/java/frameworks/JaxWS.qll index 483f0164997..cff79fc280d 100644 --- a/java/ql/src/semmle/code/java/frameworks/JaxWS.qll +++ b/java/ql/src/semmle/code/java/frameworks/JaxWS.qll @@ -422,16 +422,26 @@ private class MultivaluedMapModel extends SummaryModelCsv { override predicate row(string row) { row = [ - "javax.ws.rs.core;MultivaluedMap;true;add;;;Argument;Argument[-1];taint", - "javax.ws.rs.core;MultivaluedMap;true;addAll;;;Argument;Argument[-1];taint", - "javax.ws.rs.core;MultivaluedMap;true;addFirst;;;Argument;Argument[-1];taint", - "javax.ws.rs.core;MultivaluedMap;true;getFirst;;;Argument[-1];ReturnValue;taint", - "javax.ws.rs.core;MultivaluedMap;true;putSingle;;;Argument;Argument[-1];taint", - "jakarta.ws.rs.core;MultivaluedMap;true;add;;;Argument;Argument[-1];taint", - "jakarta.ws.rs.core;MultivaluedMap;true;addAll;;;Argument;Argument[-1];taint", - "jakarta.ws.rs.core;MultivaluedMap;true;addFirst;;;Argument;Argument[-1];taint", - "jakarta.ws.rs.core;MultivaluedMap;true;getFirst;;;Argument[-1];ReturnValue;taint", - "jakarta.ws.rs.core;MultivaluedMap;true;putSingle;;;Argument;Argument[-1];taint" + "javax.ws.rs.core;MultivaluedMap;true;add;;;Argument[0];MapKey of Argument[-1];value", + "javax.ws.rs.core;MultivaluedMap;true;add;;;Argument[1];Element of MapValue of Argument[-1];value", + "javax.ws.rs.core;MultivaluedMap;true;addAll;;;Argument[0];MapKey of Argument[-1];value", + "javax.ws.rs.core;MultivaluedMap;true;addAll;(Object,List);;Element of Argument[1];Element of MapValue of Argument[-1];value", + "javax.ws.rs.core;MultivaluedMap;true;addAll;(Object,Object[]);;ArrayElement of Argument[1];Element of MapValue of Argument[-1];value", + "javax.ws.rs.core;MultivaluedMap;true;addFirst;;;Argument[0];MapKey of Argument[-1];value", + "javax.ws.rs.core;MultivaluedMap;true;addFirst;;;Argument[1];Element of MapValue of Argument[-1];value", + "javax.ws.rs.core;MultivaluedMap;true;getFirst;;;Element of MapValue of Argument[-1];ReturnValue;value", + "javax.ws.rs.core;MultivaluedMap;true;putSingle;;;Argument[0];MapKey of Argument[-1];value", + "javax.ws.rs.core;MultivaluedMap;true;putSingle;;;Argument[1];Element of MapValue of Argument[-1];value", + "jakarta.ws.rs.core;MultivaluedMap;true;add;;;Argument[0];MapKey of Argument[-1];value", + "jakarta.ws.rs.core;MultivaluedMap;true;add;;;Argument[1];Element of MapValue of Argument[-1];value", + "jakarta.ws.rs.core;MultivaluedMap;true;addAll;;;Argument[0];MapKey of Argument[-1];value", + "jakarta.ws.rs.core;MultivaluedMap;true;addAll;(Object,List);;Element of Argument[1];Element of MapValue of Argument[-1];value", + "jakarta.ws.rs.core;MultivaluedMap;true;addAll;(Object,Object[]);;ArrayElement of Argument[1];Element of MapValue of Argument[-1];value", + "jakarta.ws.rs.core;MultivaluedMap;true;addFirst;;;Argument[0];MapKey of Argument[-1];value", + "jakarta.ws.rs.core;MultivaluedMap;true;addFirst;;;Argument[1];Element of MapValue of Argument[-1];value", + "jakarta.ws.rs.core;MultivaluedMap;true;getFirst;;;Element of MapValue of Argument[-1];ReturnValue;value", + "jakarta.ws.rs.core;MultivaluedMap;true;putSingle;;;Argument[0];MapKey of Argument[-1];value", + "jakarta.ws.rs.core;MultivaluedMap;true;putSingle;;;Argument[1];Element of MapValue of Argument[-1];value" ] } } @@ -485,16 +495,16 @@ private class CookieModel extends SummaryModelCsv { "javax.ws.rs.core;Cookie;true;getValue;;;Argument[-1];ReturnValue;taint", "javax.ws.rs.core;Cookie;true;getVersion;;;Argument[-1];ReturnValue;taint", "javax.ws.rs.core;Cookie;true;toString;;;Argument[-1];ReturnValue;taint", - "javax.ws.rs.core;Cookie;false;Cookie;;;Argument;Argument[-1];taint", - "javax.ws.rs.core;Cookie;false;valueOf;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;Cookie;false;Cookie;;;Argument[0..4];Argument[-1];taint", + "javax.ws.rs.core;Cookie;false;valueOf;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;Cookie;true;getDomain;;;Argument[-1];ReturnValue;taint", "jakarta.ws.rs.core;Cookie;true;getName;;;Argument[-1];ReturnValue;taint", "jakarta.ws.rs.core;Cookie;true;getPath;;;Argument[-1];ReturnValue;taint", "jakarta.ws.rs.core;Cookie;true;getValue;;;Argument[-1];ReturnValue;taint", "jakarta.ws.rs.core;Cookie;true;getVersion;;;Argument[-1];ReturnValue;taint", "jakarta.ws.rs.core;Cookie;true;toString;;;Argument[-1];ReturnValue;taint", - "jakarta.ws.rs.core;Cookie;false;Cookie;;;Argument;Argument[-1];taint", - "jakarta.ws.rs.core;Cookie;false;valueOf;;;Argument;ReturnValue;taint" + "jakarta.ws.rs.core;Cookie;false;Cookie;;;Argument[0..4];Argument[-1];taint", + "jakarta.ws.rs.core;Cookie;false;valueOf;;;Argument[0];ReturnValue;taint" ] } } @@ -506,13 +516,17 @@ private class FormModel extends SummaryModelCsv { override predicate row(string row) { row = [ - "javax.ws.rs.core;Form;false;Form;;;Argument;Argument[-1];taint", + "javax.ws.rs.core;Form;false;Form;;;MapKey of Argument[0];Argument[-1];taint", + "javax.ws.rs.core;Form;false;Form;;;MapValue of Argument[0];Argument[-1];taint", + "javax.ws.rs.core;Form;false;Form;;;Argument[0..1];Argument[-1];taint", "javax.ws.rs.core;Form;true;asMap;;;Argument[-1];ReturnValue;taint", - "javax.ws.rs.core;Form;true;param;;;Argument;Argument[-1];taint", + "javax.ws.rs.core;Form;true;param;;;Argument[0..1];Argument[-1];taint", "javax.ws.rs.core;Form;true;param;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;Form;false;Form;;;Argument;Argument[-1];taint", + "jakarta.ws.rs.core;Form;false;Form;;;MapKey of Argument[0];Argument[-1];taint", + "jakarta.ws.rs.core;Form;false;Form;;;MapValue of Argument[0];Argument[-1];taint", + "jakarta.ws.rs.core;Form;false;Form;;;Argument[0..1];Argument[-1];taint", "jakarta.ws.rs.core;Form;true;asMap;;;Argument[-1];ReturnValue;taint", - "jakarta.ws.rs.core;Form;true;param;;;Argument;Argument[-1];taint", + "jakarta.ws.rs.core;Form;true;param;;;Argument[0..1];Argument[-1];taint", "jakarta.ws.rs.core;Form;true;param;;;Argument[-1];ReturnValue;value" ] } @@ -541,17 +555,17 @@ private class MediaTypeModel extends SummaryModelCsv { override predicate row(string row) { row = [ - "javax.ws.rs.core;MediaType;false;MediaType;;;Argument;Argument[-1];taint", + "javax.ws.rs.core;MediaType;false;MediaType;;;Argument[0..2];Argument[-1];taint", "javax.ws.rs.core;MediaType;true;getParameters;;;Argument[-1];ReturnValue;taint", "javax.ws.rs.core;MediaType;true;getSubtype;;;Argument[-1];ReturnValue;taint", "javax.ws.rs.core;MediaType;true;getType;;;Argument[-1];ReturnValue;taint", - "javax.ws.rs.core;MediaType;false;valueOf;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;MediaType;false;valueOf;;;Argument[0];ReturnValue;taint", "javax.ws.rs.core;MediaType;true;withCharset;;;Argument[-1];ReturnValue;taint", - "jakarta.ws.rs.core;MediaType;false;MediaType;;;Argument;Argument[-1];taint", + "jakarta.ws.rs.core;MediaType;false;MediaType;;;Argument[0..2];Argument[-1];taint", "jakarta.ws.rs.core;MediaType;true;getParameters;;;Argument[-1];ReturnValue;taint", "jakarta.ws.rs.core;MediaType;true;getSubtype;;;Argument[-1];ReturnValue;taint", "jakarta.ws.rs.core;MediaType;true;getType;;;Argument[-1];ReturnValue;taint", - "jakarta.ws.rs.core;MediaType;false;valueOf;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;MediaType;false;valueOf;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;MediaType;true;withCharset;;;Argument[-1];ReturnValue;taint" ] } @@ -564,107 +578,123 @@ private class UriBuilderModel extends SummaryModelCsv { override predicate row(string row) { row = [ - "javax.ws.rs.core;UriBuilder;true;build;;;Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;build;;;ArrayElement of Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;build;;;Argument[-1];ReturnValue;taint", - "javax.ws.rs.core;UriBuilder;true;buildFromEncoded;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;buildFromEncoded;;;ArrayElement of Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;buildFromEncoded;;;Argument[-1];ReturnValue;taint", - "javax.ws.rs.core;UriBuilder;true;buildFromEncodedMap;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;buildFromEncodedMap;;;MapKey of Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;buildFromEncodedMap;;;MapValue of Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;buildFromEncodedMap;;;Argument[-1];ReturnValue;taint", - "javax.ws.rs.core;UriBuilder;true;buildFromMap;;;Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;buildFromMap;;;MapKey of Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;buildFromMap;;;MapValue of Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;buildFromMap;;;Argument[-1];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;clone;;;Argument[-1];ReturnValue;taint", - "javax.ws.rs.core;UriBuilder;true;fragment;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;fragment;;;Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;fragment;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;false;fromLink;;;Argument;ReturnValue;taint", - "javax.ws.rs.core;UriBuilder;false;fromPath;;;Argument;ReturnValue;taint", - "javax.ws.rs.core;UriBuilder;false;fromUri;;;Argument;ReturnValue;taint", - "javax.ws.rs.core;UriBuilder;true;host;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;false;fromLink;;;Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;false;fromPath;;;Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;false;fromUri;;;Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;host;;;Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;host;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;matrixParam;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;matrixParam;;;Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;matrixParam;;;ArrayElement of Argument[1];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;matrixParam;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;path;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;path;;;Argument[0..1];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;path;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;queryParam;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;queryParam;;;Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;queryParam;;;ArrayElement of Argument[1];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;queryParam;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;replaceMatrix;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;replaceMatrix;;;Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;replaceMatrix;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;replaceMatrixParam;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;replaceMatrixParam;;;Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;replaceMatrixParam;;;ArrayElement of Argument[1];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;replaceMatrixParam;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;replacePath;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;replacePath;;;Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;replacePath;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;replaceQuery;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;replaceQuery;;;Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;replaceQuery;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;replaceQueryParam;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;replaceQueryParam;;;Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;replaceQueryParam;;;ArrayElement of Argument[1];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;replaceQueryParam;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;resolveTemplate;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;resolveTemplate;;;Argument[0..2];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;resolveTemplate;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;resolveTemplateFromEncoded;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;resolveTemplateFromEncoded;;;Argument[0..1];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;resolveTemplateFromEncoded;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;resolveTemplates;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;resolveTemplates;;;MapKey of Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;resolveTemplates;;;MapValue of Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;resolveTemplates;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;resolveTemplatesFromEncoded;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;resolveTemplatesFromEncoded;;;MapKey of Argument[0];ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;resolveTemplatesFromEncoded;;;MapValue of Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;resolveTemplatesFromEncoded;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;scheme;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;scheme;;;Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;scheme;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;schemeSpecificPart;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;schemeSpecificPart;;;Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;schemeSpecificPart;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;segment;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;segment;;;ArrayElement of Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;segment;;;Argument[-1];ReturnValue;value", "javax.ws.rs.core;UriBuilder;true;toTemplate;;;Argument[-1];ReturnValue;taint", - "javax.ws.rs.core;UriBuilder;true;uri;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;uri;;;Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;uri;;;Argument[-1];ReturnValue;value", - "javax.ws.rs.core;UriBuilder;true;userInfo;;;Argument;ReturnValue;taint", + "javax.ws.rs.core;UriBuilder;true;userInfo;;;Argument[0];ReturnValue;taint", "javax.ws.rs.core;UriBuilder;true;userInfo;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;build;;;Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;build;;;ArrayElement of Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;build;;;Argument[-1];ReturnValue;taint", - "jakarta.ws.rs.core;UriBuilder;true;buildFromEncoded;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;buildFromEncoded;;;ArrayElement of Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;buildFromEncoded;;;Argument[-1];ReturnValue;taint", - "jakarta.ws.rs.core;UriBuilder;true;buildFromEncodedMap;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;buildFromEncodedMap;;;MapKey of Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;buildFromEncodedMap;;;MapValue of Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;buildFromEncodedMap;;;Argument[-1];ReturnValue;taint", - "jakarta.ws.rs.core;UriBuilder;true;buildFromMap;;;Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;buildFromMap;;;MapKey of Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;buildFromMap;;;MapValue of Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;buildFromMap;;;Argument[-1];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;clone;;;Argument[-1];ReturnValue;taint", - "jakarta.ws.rs.core;UriBuilder;true;fragment;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;fragment;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;fragment;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;false;fromLink;;;Argument;ReturnValue;taint", - "jakarta.ws.rs.core;UriBuilder;false;fromPath;;;Argument;ReturnValue;taint", - "jakarta.ws.rs.core;UriBuilder;false;fromUri;;;Argument;ReturnValue;taint", - "jakarta.ws.rs.core;UriBuilder;true;host;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;false;fromLink;;;Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;false;fromPath;;;Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;false;fromUri;;;Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;host;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;host;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;matrixParam;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;matrixParam;;;Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;matrixParam;;;ArrayElement of Argument[1];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;matrixParam;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;path;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;path;;;Argument[0..1];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;path;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;queryParam;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;queryParam;;;Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;queryParam;;;ArrayElement of Argument[1];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;queryParam;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;replaceMatrix;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;replaceMatrix;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;replaceMatrix;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;replaceMatrixParam;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;replaceMatrixParam;;;Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;replaceMatrixParam;;;ArrayElement of Argument[1];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;replaceMatrixParam;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;replacePath;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;replacePath;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;replacePath;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;replaceQuery;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;replaceQuery;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;replaceQuery;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;replaceQueryParam;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;replaceQueryParam;;;Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;replaceQueryParam;;;ArrayElement of Argument[1];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;replaceQueryParam;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;resolveTemplate;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;resolveTemplate;;;Argument[0..2];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;resolveTemplate;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;resolveTemplateFromEncoded;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;resolveTemplateFromEncoded;;;Argument[0..1];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;resolveTemplateFromEncoded;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;resolveTemplates;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;resolveTemplates;;;MapKey of Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;resolveTemplates;;;MapValue of Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;resolveTemplates;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;resolveTemplatesFromEncoded;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;resolveTemplatesFromEncoded;;;MapKey of Argument[0];ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;resolveTemplatesFromEncoded;;;MapValue of Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;resolveTemplatesFromEncoded;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;scheme;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;scheme;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;scheme;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;schemeSpecificPart;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;schemeSpecificPart;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;schemeSpecificPart;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;segment;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;segment;;;ArrayElement of Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;segment;;;Argument[-1];ReturnValue;value", "jakarta.ws.rs.core;UriBuilder;true;toTemplate;;;Argument[-1];ReturnValue;taint", - "jakarta.ws.rs.core;UriBuilder;true;uri;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;uri;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;uri;;;Argument[-1];ReturnValue;value", - "jakarta.ws.rs.core;UriBuilder;true;userInfo;;;Argument;ReturnValue;taint", + "jakarta.ws.rs.core;UriBuilder;true;userInfo;;;Argument[0];ReturnValue;taint", "jakarta.ws.rs.core;UriBuilder;true;userInfo;;;Argument[-1];ReturnValue;value" ] }