diff options
-rw-r--r-- | libcli/security/dom_sid.c | 10 | ||||
-rw-r--r-- | libcli/security/dom_sid.h | 2 |
2 files changed, 12 insertions, 0 deletions
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); |