diff --git a/libcli/util/hresult.c b/libcli/util/hresult.c index d8d25087647..1b3a8f2b690 100644 --- a/libcli/util/hresult.c +++ b/libcli/util/hresult.c @@ -14685,3 +14685,17 @@ const char *hresult_errstr_const(HRESULT err_code) } return result; }; + +const char *hresult_errstr(HRESULT err_code) +{ + static char msg[20]; + int i; + + for (i = 0; i < ARRAY_SIZE(hresult_errs); i++) { + if (HRES_IS_EQUAL(err_code, hresult_errs[i].error_code)) { + return hresult_errs[i].error_str; + } + } + snprintf(msg, sizeof(msg), "HRES code 0x%08x", HRES_ERROR_V(err_code)); + return msg; +}; diff --git a/libcli/util/hresult.h b/libcli/util/hresult.h index aa89cd56022..18941a574a3 100644 --- a/libcli/util/hresult.h +++ b/libcli/util/hresult.h @@ -2971,6 +2971,8 @@ typedef uint32_t HRESULT; const char *hresult_errstr_const(HRESULT err_code); +const char *hresult_errstr(HRESULT err_code); + #define FACILITY_WIN32 0x0007 #define WIN32_FROM_HRESULT(x) (HRES_ERROR_V(x) == 0 ? HRES_ERROR_V(x) : ~((FACILITY_WIN32 << 16) | 0x80000000) & HRES_ERROR_V(x)) #define HRESULT_IS_LIKELY_WERR(x) ((HRES_ERROR_V(x) & 0xFFFF0000) == 0x80070000)