am 2ff853da
: Merge "Add data validation on seinfo labels."
* commit '2ff853daa89ca47491c3f7b096872a432d4a19e7': Add data validation on seinfo labels.
This commit is contained in:
@ -206,10 +206,10 @@ public final class SELinuxMMAC {
|
|||||||
String tagName = parser.getName();
|
String tagName = parser.getName();
|
||||||
if ("seinfo".equals(tagName)) {
|
if ("seinfo".equals(tagName)) {
|
||||||
String seinfoValue = parser.getAttributeValue(null, "value");
|
String seinfoValue = parser.getAttributeValue(null, "value");
|
||||||
if (seinfoValue != null) {
|
if (validateValue(seinfoValue)) {
|
||||||
seinfo = seinfoValue;
|
seinfo = seinfoValue;
|
||||||
} else {
|
} else {
|
||||||
Slog.w(TAG, "<seinfo> without value at "
|
Slog.w(TAG, "<seinfo> without valid value at "
|
||||||
+ parser.getPositionDescription());
|
+ parser.getPositionDescription());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -218,6 +218,28 @@ public final class SELinuxMMAC {
|
|||||||
return seinfo;
|
return seinfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* General validation routine for tag values.
|
||||||
|
* Returns a boolean indicating if the passed string
|
||||||
|
* contains only letters or underscores.
|
||||||
|
*/
|
||||||
|
private static boolean validateValue(String name) {
|
||||||
|
if (name == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
final int N = name.length();
|
||||||
|
if (N == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
for (int i = 0; i < N; i++) {
|
||||||
|
final char c = name.charAt(i);
|
||||||
|
if ((c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && (c != '_')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Labels a package based on an seinfo tag from install policy.
|
* Labels a package based on an seinfo tag from install policy.
|
||||||
* The label is attached to the ApplicationInfo instance of the package.
|
* The label is attached to the ApplicationInfo instance of the package.
|
||||||
|
Reference in New Issue
Block a user