mirror of
https://github.com/moparisthebest/davmail
synced 2025-01-10 05:08:08 -05:00
Fixes from audit
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@2253 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
2d31c523cd
commit
affdaf3c76
@ -31,6 +31,7 @@ public class VProperty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected static final HashSet<String> MULTIVALUED_PROPERTIES = new HashSet<String>();
|
protected static final HashSet<String> MULTIVALUED_PROPERTIES = new HashSet<String>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
MULTIVALUED_PROPERTIES.add("RESOURCES");
|
MULTIVALUED_PROPERTIES.add("RESOURCES");
|
||||||
MULTIVALUED_PROPERTIES.add("LOCATION");
|
MULTIVALUED_PROPERTIES.add("LOCATION");
|
||||||
@ -244,13 +245,13 @@ public class VProperty {
|
|||||||
/**
|
/**
|
||||||
* Set param value on property.
|
* Set param value on property.
|
||||||
*
|
*
|
||||||
* @param paramName param name
|
* @param paramName param name
|
||||||
* @param paramValue param value
|
* @param paramValue param value
|
||||||
*/
|
*/
|
||||||
public void setParam(String paramName, String paramValue) {
|
public void setParam(String paramName, String paramValue) {
|
||||||
Param currentParam = getParam(paramName);
|
Param currentParam = getParam(paramName);
|
||||||
if (currentParam != null) {
|
if (currentParam != null) {
|
||||||
getParams().remove(currentParam);
|
params.remove(currentParam);
|
||||||
}
|
}
|
||||||
addParam(paramName, paramValue);
|
addParam(paramName, paramValue);
|
||||||
}
|
}
|
||||||
@ -258,7 +259,7 @@ public class VProperty {
|
|||||||
/**
|
/**
|
||||||
* Add param value on property.
|
* Add param value on property.
|
||||||
*
|
*
|
||||||
* @param paramName param name
|
* @param paramName param name
|
||||||
* @param paramValue param value
|
* @param paramValue param value
|
||||||
*/
|
*/
|
||||||
public void addParam(String paramName, String paramValue) {
|
public void addParam(String paramName, String paramValue) {
|
||||||
@ -291,6 +292,11 @@ public class VProperty {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return param value.
|
||||||
|
* @param paramName param name
|
||||||
|
* @return value
|
||||||
|
*/
|
||||||
public String getParamValue(String paramName) {
|
public String getParamValue(String paramName) {
|
||||||
Param param = getParam(paramName);
|
Param param = getParam(paramName);
|
||||||
if (param != null) {
|
if (param != null) {
|
||||||
@ -386,10 +392,7 @@ public class VProperty {
|
|||||||
if (params != null) {
|
if (params != null) {
|
||||||
for (Param param : params) {
|
for (Param param : params) {
|
||||||
buffer.append(';').append(param.name);
|
buffer.append(';').append(param.name);
|
||||||
if (param.values != null) {
|
appendParamValues(buffer, param);
|
||||||
buffer.append('=');
|
|
||||||
appendParamValues(buffer, param);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
buffer.append(':');
|
buffer.append(':');
|
||||||
@ -410,22 +413,25 @@ public class VProperty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void appendParamValues(StringBuilder buffer, Param param) {
|
protected void appendParamValues(StringBuilder buffer, Param param) {
|
||||||
boolean first = true;
|
if (param.values != null) {
|
||||||
for (String value : param.values) {
|
buffer.append('=');
|
||||||
if (first) {
|
boolean first = true;
|
||||||
first = false;
|
for (String value : param.values) {
|
||||||
} else {
|
if (first) {
|
||||||
buffer.append(',');
|
first = false;
|
||||||
}
|
} else {
|
||||||
// always quote CN param
|
buffer.append(',');
|
||||||
if ("CN".equalsIgnoreCase(param.name)
|
}
|
||||||
// quote param values with special characters
|
// always quote CN param
|
||||||
|| value.indexOf(';') >= 0 || value.indexOf(',') >= 0
|
if ("CN".equalsIgnoreCase(param.name)
|
||||||
|| value.indexOf('(') >= 0 || value.indexOf('/') >= 0
|
// quote param values with special characters
|
||||||
|| value.indexOf(':') >= 0) {
|
|| value.indexOf(';') >= 0 || value.indexOf(',') >= 0
|
||||||
buffer.append('"').append(value).append('"');
|
|| value.indexOf('(') >= 0 || value.indexOf('/') >= 0
|
||||||
} else {
|
|| value.indexOf(':') >= 0) {
|
||||||
buffer.append(value);
|
buffer.append('"').append(value).append('"');
|
||||||
|
} else {
|
||||||
|
buffer.append(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -441,7 +447,7 @@ public class VProperty {
|
|||||||
char c = value.charAt(i);
|
char c = value.charAt(i);
|
||||||
if (c == '\n') {
|
if (c == '\n') {
|
||||||
buffer.append("\\n");
|
buffer.append("\\n");
|
||||||
} else if (MULTIVALUED_PROPERTIES.contains(key) && c==',') {
|
} else if (MULTIVALUED_PROPERTIES.contains(key) && c == ',') {
|
||||||
buffer.append('\\').append(',');
|
buffer.append('\\').append(',');
|
||||||
} else {
|
} else {
|
||||||
buffer.append(value.charAt(i));
|
buffer.append(value.charAt(i));
|
||||||
|
Loading…
Reference in New Issue
Block a user