/* Returns the taint on an object. * - Currently only arrays and java.lang.String is supported */ u4 getObjectTaint(Object* obj, const char* descriptor) { ArrayObject *arrObj = NULL; if (obj == NULL) { return TAINT_CLEAR; } if (descriptor[0] == '[') { /* Get the taint from the array */ arrObj = (ArrayObject*) obj; if (arrObj != NULL) { return arrObj->taint.tag; } } if (strcmp(descriptor, "Ljava/lang/String;") == 0) { StringObject * strObj = (StringObject*) obj; arrObj = strObj->array(); if (arrObj != NULL) { return arrObj->taint.tag; } /* else, empty string? don't worry about it */ } /* TODO: What about classes derived from String? */ /* Don't worry about other object types */ return TAINT_CLEAR; }