summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcli/util/nterr.c43
-rw-r--r--libcli/util/ntstatus.h9
-rw-r--r--source3/libsmb/nterr.c20
-rw-r--r--source4/libcli/util/nterr.c20
4 files changed, 52 insertions, 40 deletions
diff --git a/libcli/util/nterr.c b/libcli/util/nterr.c
index 5f31c3c0c2..1e84e81878 100644
--- a/libcli/util/nterr.c
+++ b/libcli/util/nterr.c
@@ -906,3 +906,46 @@ NTSTATUS nt_status_squash(NTSTATUS nt_status)
return nt_status;
}
}
+
+/*****************************************************************************
+ Returns an NT error message. not amazingly helpful, but better than a number.
+
+ This version is const, and so neither allocates memory nor uses a
+ static variable for unknown errors.
+ *****************************************************************************/
+
+const char *nt_errstr_const(NTSTATUS nt_code)
+{
+ static char msg[40];
+ int idx = 0;
+
+ while (nt_errs[idx].nt_errstr != NULL) {
+ if (NT_STATUS_V(nt_errs[idx].nt_errcode) ==
+ NT_STATUS_V(nt_code)) {
+ return nt_errs[idx].nt_errstr;
+ }
+ idx++;
+ }
+
+ return "unknown NT_STATUS error";
+}
+
+/************************************************************************
+ Print friendler version fo NT error code
+ ***********************************************************************/
+
+const char *get_friendly_nt_error_msg(NTSTATUS nt_code)
+{
+ int idx = 0;
+
+ while (nt_err_desc[idx].nt_errstr != NULL) {
+ if (NT_STATUS_V(nt_err_desc[idx].nt_errcode) == NT_STATUS_V(nt_code)) {
+ return nt_err_desc[idx].nt_errstr;
+ }
+ idx++;
+ }
+
+ /* fall back to NT_STATUS_XXX string */
+
+ return nt_errstr_const(nt_code);
+}
diff --git a/libcli/util/ntstatus.h b/libcli/util/ntstatus.h
index 13ce733ca3..2f1635093b 100644
--- a/libcli/util/ntstatus.h
+++ b/libcli/util/ntstatus.h
@@ -629,6 +629,15 @@ typedef uint32_t NTSTATUS;
#define NT_STATUS_FOOBAR NT_STATUS_UNSUCCESSFUL
/*****************************************************************************
+ Returns an NT error message. not amazingly helpful, but better than a number.
+
+ This version is const, and so neither allocates memory nor uses a
+ static variable for unknown errors.
+ *****************************************************************************/
+
+const char *nt_errstr_const(NTSTATUS nt_code);
+
+/*****************************************************************************
returns an NT error message. not amazingly helpful, but better than a number.
*****************************************************************************/
const char *nt_errstr(NTSTATUS nt_code);
diff --git a/source3/libsmb/nterr.c b/source3/libsmb/nterr.c
index 7d0b3d08fd..a4a388303d 100644
--- a/source3/libsmb/nterr.c
+++ b/source3/libsmb/nterr.c
@@ -55,23 +55,3 @@ const char *nt_errstr(NTSTATUS nt_code)
return result;
}
-/************************************************************************
- Print friendler version fo NT error code
- ***********************************************************************/
-
-const char *get_friendly_nt_error_msg(NTSTATUS nt_code)
-{
- int idx = 0;
-
- while (nt_err_desc[idx].nt_errstr != NULL) {
- if (NT_STATUS_V(nt_err_desc[idx].nt_errcode) == NT_STATUS_V(nt_code)) {
- return nt_err_desc[idx].nt_errstr;
- }
- idx++;
- }
-
- /* fall back to NT_STATUS_XXX string */
-
- return nt_errstr(nt_code);
-}
-
diff --git a/source4/libcli/util/nterr.c b/source4/libcli/util/nterr.c
index ea8c0fcd35..1532b5b787 100644
--- a/source4/libcli/util/nterr.c
+++ b/source4/libcli/util/nterr.c
@@ -52,23 +52,3 @@ const char *nt_errstr(NTSTATUS nt_code)
return msg;
}
-
-/************************************************************************
- Print friendler version fo NT error code
- ***********************************************************************/
-
-const char *get_friendly_nt_error_msg(NTSTATUS nt_code)
-{
- int idx = 0;
-
- while (nt_err_desc[idx].nt_errstr != NULL) {
- if (NT_STATUS_V(nt_err_desc[idx].nt_errcode) == NT_STATUS_V(nt_code)) {
- return nt_err_desc[idx].nt_errstr;
- }
- idx++;
- }
-
- /* fall back to NT_STATUS_XXX string */
-
- return nt_errstr(nt_code);
-}