From e8bb1f65cd12f3243e5b965e1e9951567cd3ed48 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 18 Oct 2018 05:46:37 +0200 Subject: lib: Add dom_sid_str_buf This is modeled after server_id_str_buf, which as an API to me is easier to use: I can rely on the compiler to get the buffer size right. It is designed to violate README.Coding's "Make use of helper variables", but as this API is simple enough and the output should never be a surprise at all, I think that's worth it. Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Fri Nov 2 20:11:11 CET 2018 on sn-devel-144 (cherry picked from commit 8b9d36221930a487ca5c51bf2e38ed04de9d50f7) --- libcli/security/dom_sid.c | 10 ++++++++++ libcli/security/dom_sid.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/libcli/security/dom_sid.c b/libcli/security/dom_sid.c index e6beff1a399..b24c51c380a 100644 --- a/libcli/security/dom_sid.c +++ b/libcli/security/dom_sid.c @@ -425,3 +425,13 @@ char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid) talloc_set_name_const(result, result); return result; } + +char *dom_sid_str_buf(const struct dom_sid *sid, struct dom_sid_buf *dst) +{ + int ret; + ret = dom_sid_string_buf(sid, dst->buf, sizeof(dst->buf)); + if ((ret < 0) || (ret >= sizeof(dst->buf))) { + strlcpy(dst->buf, "(INVALID SID)", sizeof(dst->buf)); + } + return dst->buf; +} diff --git a/libcli/security/dom_sid.h b/libcli/security/dom_sid.h index e22ebc9abca..8a6c0d03b48 100644 --- a/libcli/security/dom_sid.h +++ b/libcli/security/dom_sid.h @@ -102,6 +102,8 @@ bool dom_sid_in_domain(const struct dom_sid *domain_sid, int dom_sid_string_buf(const struct dom_sid *sid, char *buf, int buflen); char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid); +struct dom_sid_buf { char buf[DOM_SID_STR_BUFLEN]; }; +char *dom_sid_str_buf(const struct dom_sid *sid, struct dom_sid_buf *dst); const char *sid_type_lookup(uint32_t sid_type); const struct security_token *get_system_token(void); -- cgit v1.2.1