diff options
author | Thomas Haller <thaller@redhat.com> | 2019-02-11 13:04:11 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2019-02-13 16:03:23 +0100 |
commit | 99ae5322c9363456f8fdb0be7ec9acf683d8939b (patch) | |
tree | 25b6eb7828ac388d4a02d0c04f84756a101c0554 | |
parent | 2fa7a7c20b2d1706e2fe6231d7844f0d25313aa5 (diff) | |
download | NetworkManager-99ae5322c9363456f8fdb0be7ec9acf683d8939b.tar.gz |
shared: add macros for initializing NMSecretPtr
-rw-r--r-- | shared/nm-utils/nm-secret-utils.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/shared/nm-utils/nm-secret-utils.h b/shared/nm-utils/nm-secret-utils.h index 9df31afea1..1bd518704e 100644 --- a/shared/nm-utils/nm-secret-utils.h +++ b/shared/nm-utils/nm-secret-utils.h @@ -76,6 +76,19 @@ typedef struct { } NMSecretPtr; static inline void +nm_secret_ptr_bzero (NMSecretPtr *secret) +{ + if (secret) { + if (secret->len > 0) { + if (secret->ptr) + nm_explicit_bzero (secret->ptr, secret->len); + } + } +} + +#define nm_auto_bzero_secret_ptr nm_auto(nm_secret_ptr_bzero) + +static inline void nm_secret_ptr_clear (NMSecretPtr *secret) { if (secret) { @@ -90,12 +103,24 @@ nm_secret_ptr_clear (NMSecretPtr *secret) #define nm_auto_clear_secret_ptr nm_auto(nm_secret_ptr_clear) +#define NM_SECRET_PTR_INIT() \ + ((const NMSecretPtr) { \ + .len = 0, \ + .ptr = NULL, \ + }) + #define NM_SECRET_PTR_STATIC(_len) \ ((const NMSecretPtr) { \ .len = _len, \ .ptr = ((guint8 [_len]) { }), \ }) +#define NM_SECRET_PTR_ARRAY(_arr) \ + ((const NMSecretPtr) { \ + .len = G_N_ELEMENTS (_arr) * sizeof ((_arr)[0]), \ + .ptr = &((_arr)[0]), \ + }) + static inline void nm_secret_ptr_clear_static (const NMSecretPtr *secret) { |