diff options
Diffstat (limited to 'source3/libsmb/nterr.c')
-rw-r--r-- | source3/libsmb/nterr.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/source3/libsmb/nterr.c b/source3/libsmb/nterr.c index d88e650c9c..cf443f2339 100644 --- a/source3/libsmb/nterr.c +++ b/source3/libsmb/nterr.c @@ -647,8 +647,8 @@ nt_err_code_struct nt_err_desc[] = const char *nt_errstr(NTSTATUS nt_code) { - static pstring msg; int idx = 0; + char *result; #ifdef HAVE_LDAP if (NT_STATUS_TYPE(nt_code) == NT_STATUS_TYPE_LDAP) { @@ -656,8 +656,6 @@ const char *nt_errstr(NTSTATUS nt_code) } #endif - slprintf(msg, sizeof(msg), "NT code 0x%08x", NT_STATUS_V(nt_code)); - while (nt_errs[idx].nt_errstr != NULL) { if (NT_STATUS_EQUAL(nt_errs[idx].nt_errcode, nt_code)) { return nt_errs[idx].nt_errstr; @@ -665,7 +663,10 @@ const char *nt_errstr(NTSTATUS nt_code) idx++; } - return msg; + result = talloc_asprintf(talloc_tos(), "NT code 0x%08x", + NT_STATUS_V(nt_code)); + SMB_ASSERT(result != NULL); + return result; } /************************************************************************ @@ -694,7 +695,7 @@ const char *get_friendly_nt_error_msg(NTSTATUS nt_code) const char *get_nt_error_c_code(NTSTATUS nt_code) { - static pstring out; + char *result; int idx = 0; while (nt_errs[idx].nt_errstr != NULL) { @@ -705,9 +706,10 @@ const char *get_nt_error_c_code(NTSTATUS nt_code) idx++; } - slprintf(out, sizeof(out), "NT_STATUS(0x%08x)", NT_STATUS_V(nt_code)); - - return out; + result = talloc_asprintf(talloc_tos(), "NT_STATUS(0x%08x)", + NT_STATUS_V(nt_code)); + SMB_ASSERT(result); + return result; } /***************************************************************************** |