Changeset 740 for vendor/current/librpc/rpc/dcerpc_error.c
- Timestamp:
- Nov 14, 2012, 12:59:34 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified vendor/current/librpc/rpc/dcerpc_error.c ¶
r594 r740 22 22 #include "includes.h" 23 23 #include "librpc/rpc/dcerpc.h" 24 #include "rpc_common.h" 24 25 25 26 struct dcerpc_fault_table { … … 30 31 static const struct dcerpc_fault_table dcerpc_faults[] = 31 32 { 32 { "DCERPC_FAULT_OP_RNG_ERROR", DCERPC_FAULT_OP_RNG_ERROR }, 33 { "DCERPC_FAULT_UNK_IF", DCERPC_FAULT_UNK_IF }, 34 { "DCERPC_FAULT_NDR", DCERPC_FAULT_NDR }, 35 { "DCERPC_FAULT_INVALID_TAG", DCERPC_FAULT_INVALID_TAG }, 36 { "DCERPC_FAULT_CONTEXT_MISMATCH", DCERPC_FAULT_CONTEXT_MISMATCH }, 37 { "DCERPC_FAULT_OTHER", DCERPC_FAULT_OTHER }, 38 { "DCERPC_FAULT_ACCESS_DENIED", DCERPC_FAULT_ACCESS_DENIED }, 39 { "DCERPC_FAULT_SEC_PKG_ERROR", DCERPC_FAULT_SEC_PKG_ERROR }, 40 41 { NULL, 0} 33 #define _FAULT_STR(x) { #x , x } 34 _FAULT_STR(DCERPC_NCA_S_COMM_FAILURE), 35 _FAULT_STR(DCERPC_NCA_S_OP_RNG_ERROR), 36 _FAULT_STR(DCERPC_NCA_S_UNKNOWN_IF), 37 _FAULT_STR(DCERPC_NCA_S_WRONG_BOOT_TIME), 38 _FAULT_STR(DCERPC_NCA_S_YOU_CRASHED), 39 _FAULT_STR(DCERPC_NCA_S_PROTO_ERROR), 40 _FAULT_STR(DCERPC_NCA_S_OUT_ARGS_TOO_BIG), 41 _FAULT_STR(DCERPC_NCA_S_SERVER_TOO_BUSY), 42 _FAULT_STR(DCERPC_NCA_S_FAULT_STRING_TOO_LARGE), 43 _FAULT_STR(DCERPC_NCA_S_UNSUPPORTED_TYPE), 44 _FAULT_STR(DCERPC_NCA_S_FAULT_INT_DIV_BY_ZERO), 45 _FAULT_STR(DCERPC_NCA_S_FAULT_ADDR_ERROR), 46 _FAULT_STR(DCERPC_NCA_S_FAULT_FP_DIV_BY_ZERO), 47 _FAULT_STR(DCERPC_NCA_S_FAULT_FP_UNDERFLOW), 48 _FAULT_STR(DCERPC_NCA_S_FAULT_FP_OVERRFLOW), 49 _FAULT_STR(DCERPC_NCA_S_FAULT_INVALID_TAG), 50 _FAULT_STR(DCERPC_NCA_S_FAULT_INVALID_BOUND), 51 _FAULT_STR(DCERPC_NCA_S_FAULT_RPC_VERSION_MISMATCH), 52 _FAULT_STR(DCERPC_NCA_S_FAULT_UNSPEC_REJECT), 53 _FAULT_STR(DCERPC_NCA_S_FAULT_BAD_ACTID), 54 _FAULT_STR(DCERPC_NCA_S_FAULT_WHO_ARE_YOU_FAILED), 55 _FAULT_STR(DCERPC_NCA_S_FAULT_MANAGER_NOT_ENTERED), 56 _FAULT_STR(DCERPC_NCA_S_FAULT_CANCEL), 57 _FAULT_STR(DCERPC_NCA_S_FAULT_ILL_INST), 58 _FAULT_STR(DCERPC_NCA_S_FAULT_FP_ERROR), 59 _FAULT_STR(DCERPC_NCA_S_FAULT_INT_OVERFLOW), 60 _FAULT_STR(DCERPC_NCA_S_UNUSED_1C000011), 61 _FAULT_STR(DCERPC_NCA_S_FAULT_UNSPEC), 62 _FAULT_STR(DCERPC_NCA_S_FAULT_REMOTE_COMM_FAILURE), 63 _FAULT_STR(DCERPC_NCA_S_FAULT_PIPE_EMPTY), 64 _FAULT_STR(DCERPC_NCA_S_FAULT_PIPE_CLOSED), 65 _FAULT_STR(DCERPC_NCA_S_FAULT_PIPE_ORDER), 66 _FAULT_STR(DCERPC_NCA_S_FAULT_PIPE_DISCIPLINE), 67 _FAULT_STR(DCERPC_NCA_S_FAULT_PIPE_COMM_ERROR), 68 _FAULT_STR(DCERPC_NCA_S_FAULT_PIPE_MEMORY), 69 _FAULT_STR(DCERPC_NCA_S_FAULT_CONTEXT_MISMATCH), 70 _FAULT_STR(DCERPC_NCA_S_FAULT_REMOTE_NO_MEMORY), 71 _FAULT_STR(DCERPC_NCA_S_INVALID_PRES_CONTEXT_ID), 72 _FAULT_STR(DCERPC_NCA_S_UNSUPPORTED_AUTHN_LEVEL), 73 _FAULT_STR(DCERPC_NCA_S_UNUSED_1C00001E), 74 _FAULT_STR(DCERPC_NCA_S_INVALID_CHECKSUM), 75 _FAULT_STR(DCERPC_NCA_S_INVALID_CRC), 76 _FAULT_STR(DCERPC_NCA_S_FAULT_USER_DEFINED), 77 _FAULT_STR(DCERPC_NCA_S_FAULT_TX_OPEN_FAILED), 78 _FAULT_STR(DCERPC_NCA_S_FAULT_CODESET_CONV_ERROR), 79 _FAULT_STR(DCERPC_NCA_S_FAULT_OBJECT_NOT_FOUND), 80 _FAULT_STR(DCERPC_NCA_S_FAULT_NO_CLIENT_STUB), 81 { NULL, 0 } 82 #undef _FAULT_STR 42 83 }; 43 84 … … 45 86 { 46 87 int idx = 0; 88 WERROR werr = W_ERROR(fault_code); 47 89 48 90 while (dcerpc_faults[idx].errstr != NULL) { … … 53 95 } 54 96 55 return talloc_asprintf(mem_ctx, "DCERPC fault 0x%08x", fault_code);97 return win_errstr(werr); 56 98 } 99 100 _PUBLIC_ NTSTATUS dcerpc_fault_to_nt_status(uint32_t fault_code) 101 { 102 /* TODO: add more mappings */ 103 switch (fault_code) { 104 case DCERPC_FAULT_OP_RNG_ERROR: 105 return NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE; 106 case DCERPC_FAULT_UNK_IF: 107 return NT_STATUS_RPC_UNKNOWN_IF; 108 case DCERPC_FAULT_NDR: 109 return NT_STATUS_RPC_BAD_STUB_DATA; 110 case DCERPC_FAULT_INVALID_TAG: 111 return NT_STATUS_RPC_ENUM_VALUE_OUT_OF_RANGE; 112 case DCERPC_FAULT_CONTEXT_MISMATCH: 113 return NT_STATUS_RPC_SS_CONTEXT_MISMATCH; 114 case DCERPC_FAULT_OTHER: 115 return NT_STATUS_RPC_CALL_FAILED; 116 case DCERPC_FAULT_ACCESS_DENIED: 117 return NT_STATUS_ACCESS_DENIED; 118 case DCERPC_FAULT_SEC_PKG_ERROR: 119 return NT_STATUS_RPC_SEC_PKG_ERROR; 120 } 121 122 return NT_STATUS_RPC_PROTOCOL_ERROR; 123 } 124
Note:
See TracChangeset
for help on using the changeset viewer.