failCauseToString(RIL_Errno e) {
 switch(e) {
 case RIL_E_SUCCESS: return "E_SUCCESS";
 case RIL_E_RADIO_NOT_AVAILABLE: return "E_RADIO_NOT_AVAILABLE";
 case RIL_E_GENERIC_FAILURE: return "E_GENERIC_FAILURE";
 case RIL_E_PASSWORD_INCORRECT: return "E_PASSWORD_INCORRECT";
 case RIL_E_SIM_PIN2: return "E_SIM_PIN2";
 case RIL_E_SIM_PUK2: return "E_SIM_PUK2";
 case RIL_E_REQUEST_NOT_SUPPORTED: return "E_REQUEST_NOT_SUPPORTED";
 case RIL_E_CANCELLED: return "E_CANCELLED";
 case RIL_E_OP_NOT_ALLOWED_DURING_VOICE_CALL: return "E_OP_NOT_ALLOWED_DURING_VOICE_CALL";
 case RIL_E_OP_NOT_ALLOWED_BEFORE_REG_TO_NW: return "E_OP_NOT_ALLOWED_BEFORE_REG_TO_NW";
 case RIL_E_SMS_SEND_FAIL_RETRY: return "E_SMS_SEND_FAIL_RETRY";
 case RIL_E_SIM_ABSENT:return "E_SIM_ABSENT";
 case RIL_E_ILLEGAL_SIM_OR_ME:return "E_ILLEGAL_SIM_OR_ME";
#ifdef FEATURE_MULTIMODE_ANDROID
 case RIL_E_SUBSCRIPTION_NOT_AVAILABLE:return "E_SUBSCRIPTION_NOT_AVAILABLE";
 case RIL_E_MODE_NOT_SUPPORTED:return "E_MODE_NOT_SUPPORTED";
#endif
 case RIL_E_FDN_CHECK_FAILURE: return "E_FDN_CHECK_FAILURE";
 case RIL_E_MISSING_RESOURCE: return "E_MISSING_RESOURCE";
 case RIL_E_NO_SUCH_ELEMENT: return "E_NO_SUCH_ELEMENT";
 case RIL_E_DIAL_MODIFIED_TO_USSD: return "E_DIAL_MODIFIED_TO_USSD";
 case RIL_E_DIAL_MODIFIED_TO_SS: return "E_DIAL_MODIFIED_TO_SS";
 case RIL_E_DIAL_MODIFIED_TO_DIAL: return "E_DIAL_MODIFIED_TO_DIAL";
 case RIL_E_USSD_MODIFIED_TO_DIAL: return "E_USSD_MODIFIED_TO_DIAL";
 case RIL_E_USSD_MODIFIED_TO_SS: return "E_USSD_MODIFIED_TO_SS";
 case RIL_E_USSD_MODIFIED_TO_USSD: return "E_USSD_MODIFIED_TO_USSD";
 case RIL_E_SS_MODIFIED_TO_DIAL: return "E_SS_MODIFIED_TO_DIAL";
 case RIL_E_SS_MODIFIED_TO_USSD: return "E_SS_MODIFIED_TO_USSD";
 case RIL_E_SUBSCRIPTION_NOT_SUPPORTED: return "E_SUBSCRIPTION_NOT_SUPPORTED";
 case RIL_E_SS_MODIFIED_TO_SS: return "E_SS_MODIFIED_TO_SS";
 case RIL_E_LCE_NOT_SUPPORTED: return "E_LCE_NOT_SUPPORTED";
 case RIL_E_NO_MEMORY: return "E_NO_MEMORY";
 case RIL_E_INTERNAL_ERR: return "E_INTERNAL_ERR";
 case RIL_E_SYSTEM_ERR: return "E_SYSTEM_ERR";
 case RIL_E_MODEM_ERR: return "E_MODEM_ERR";
 case RIL_E_INVALID_STATE: return "E_INVALID_STATE";
 case RIL_E_NO_RESOURCES: return "E_NO_RESOURCES";
 case RIL_E_SIM_ERR: return "E_SIM_ERR";
 case RIL_E_INVALID_ARGUMENTS: return "E_INVALID_ARGUMENTS";
 case RIL_E_INVALID_SIM_STATE: return "E_INVALID_SIM_STATE";
 case RIL_E_INVALID_MODEM_STATE: return "E_INVALID_MODEM_STATE";
 case RIL_E_INVALID_CALL_ID: return "E_INVALID_CALL_ID";
 case RIL_E_NO_SMS_TO_ACK: return "E_NO_SMS_TO_ACK";
 case RIL_E_NETWORK_ERR: return "E_NETWORK_ERR";
 case RIL_E_REQUEST_RATE_LIMITED: return "E_REQUEST_RATE_LIMITED";
 case RIL_E_SIM_BUSY: return "E_SIM_BUSY";
 case RIL_E_SIM_FULL: return "E_SIM_FULL";
 case RIL_E_NETWORK_REJECT: return "E_NETWORK_REJECT";
 case RIL_E_OPERATION_NOT_ALLOWED: return "E_OPERATION_NOT_ALLOWED";
 case RIL_E_EMPTY_RECORD: "E_EMPTY_RECORD";
 case RIL_E_INVALID_SMS_FORMAT: return "E_INVALID_SMS_FORMAT";
 case RIL_E_ENCODING_ERR: return "E_ENCODING_ERR";
 case RIL_E_INVALID_SMSC_ADDRESS: return "E_INVALID_SMSC_ADDRESS";
 case RIL_E_NO_SUCH_ENTRY: return "E_NO_SUCH_ENTRY";
 case RIL_E_NETWORK_NOT_READY: return "E_NETWORK_NOT_READY";
 case RIL_E_NOT_PROVISIONED: return "E_NOT_PROVISIONED";
 case RIL_E_NO_SUBSCRIPTION: return "E_NO_SUBSCRIPTION";
 case RIL_E_NO_NETWORK_FOUND: return "E_NO_NETWORK_FOUND";
 case RIL_E_DEVICE_IN_USE: return "E_DEVICE_IN_USE";
 case RIL_E_ABORTED: return "E_ABORTED";
 case RIL_E_OEM_ERROR_1: return "E_OEM_ERROR_1";
 case RIL_E_OEM_ERROR_2: return "E_OEM_ERROR_2";
 case RIL_E_OEM_ERROR_3: return "E_OEM_ERROR_3";
 case RIL_E_OEM_ERROR_4: return "E_OEM_ERROR_4";
 case RIL_E_OEM_ERROR_5: return "E_OEM_ERROR_5";
 case RIL_E_OEM_ERROR_6: return "E_OEM_ERROR_6";
 case RIL_E_OEM_ERROR_7: return "E_OEM_ERROR_7";
 case RIL_E_OEM_ERROR_8: return "E_OEM_ERROR_8";
 case RIL_E_OEM_ERROR_9: return "E_OEM_ERROR_9";
 case RIL_E_OEM_ERROR_10: return "E_OEM_ERROR_10";
 case RIL_E_OEM_ERROR_11: return "E_OEM_ERROR_11";
 case RIL_E_OEM_ERROR_12: return "E_OEM_ERROR_12";
 case RIL_E_OEM_ERROR_13: return "E_OEM_ERROR_13";
 case RIL_E_OEM_ERROR_14: return "E_OEM_ERROR_14";
 case RIL_E_OEM_ERROR_15: return "E_OEM_ERROR_15";
 case RIL_E_OEM_ERROR_16: return "E_OEM_ERROR_16";
 case RIL_E_OEM_ERROR_17: return "E_OEM_ERROR_17";
 case RIL_E_OEM_ERROR_18: return "E_OEM_ERROR_18";
 case RIL_E_OEM_ERROR_19: return "E_OEM_ERROR_19";
 case RIL_E_OEM_ERROR_20: return "E_OEM_ERROR_20";
 case RIL_E_OEM_ERROR_21: return "E_OEM_ERROR_21";
 case RIL_E_OEM_ERROR_22: return "E_OEM_ERROR_22";
 case RIL_E_OEM_ERROR_23: return "E_OEM_ERROR_23";
 case RIL_E_OEM_ERROR_24: return "E_OEM_ERROR_24";
 case RIL_E_OEM_ERROR_25: return "E_OEM_ERROR_25";
 default: return "<unknown error>";
 }
}

The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.