libkvm - Increase static buffer for devname()
[dragonfly.git] / contrib / pam_passwdqc / pam_macros.h
1 /*
2  * These macros are partially based on Linux-PAM's <security/_pam_macros.h>,
3  * which were organized by Cristian Gafton and I believe are in the public
4  * domain.
5  */
6
7 #ifndef PAM_PASSWDQC_MACROS_H__
8 #define PAM_PASSWDQC_MACROS_H__
9
10 #include <string.h>
11 #include <stdlib.h>
12
13 static __inline void
14 pwqc_overwrite_string(char *x)
15 {
16         if (x)
17                 memset(x, 0, strlen(x));
18 }
19
20 static __inline void
21 pwqc_drop_mem(void *x)
22 {
23         if (x) {
24                 free(x);
25                 x = NULL;
26         }
27 }
28
29 static __inline void
30 pwqc_drop_pam_reply(struct pam_response *reply, int replies)
31 {
32         if (reply) {
33                 int reply_i;
34
35                 for (reply_i = 0; reply_i < replies; ++reply_i) {
36                         pwqc_overwrite_string(reply[reply_i].resp);
37                         pwqc_drop_mem(reply[reply_i].resp);
38                 }
39                 pwqc_drop_mem(reply);
40         }
41 }
42
43 #endif /* PAM_PASSWDQC_MACROS_H__ */