summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/k5-int.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/include/k5-int.h b/src/include/k5-int.h
index 1cb2fdb92..1c8a1c92d 100644
--- a/src/include/k5-int.h
+++ b/src/include/k5-int.h
@@ -776,6 +776,16 @@ static inline void krb5int_zap_data(void *ptr, size_t len)
#endif /* WIN32 */
#define zap(p,l) krb5int_zap_data(p,l)
+/* Convenience function: zap and free ptr if it is non-NULL. */
+static inline void
+zapfree(void *ptr, size_t len)
+{
+ if (ptr != NULL) {
+ zap(ptr, len);
+ free(ptr);
+ }
+}
+
/* A definition of init_state for DES based encryption systems.
* sets up an 8-byte IV of all zeros
*/
@@ -2823,6 +2833,17 @@ static inline int authdata_eq (krb5_authdata a1, krb5_authdata a2)
&& !memcmp(a1.contents, a2.contents, a1.length));
}
+/* Allocate zeroed memory; set *code to 0 on success or ENOMEM on failure. */
+static inline void *
+k5alloc(size_t size, krb5_error_code *code)
+{
+ void *ptr;
+
+ ptr = calloc(size, 1);
+ *code = (ptr == NULL) ? ENOMEM : 0;
+ return ptr;
+}
+
krb5_error_code KRB5_CALLCONV
krb5int_pac_sign(krb5_context context,
krb5_pac pac,