aboutsummaryrefslogtreecommitdiffstats
path: root/pam_cap
diff options
context:
space:
mode:
authorAndrew G. Morgan <morgan@kernel.org>2019-12-23 22:25:46 -0800
committerAndrew G. Morgan <morgan@kernel.org>2019-12-23 22:25:46 -0800
commitd45a3d4812598fc056499fa4622be4af58076bd5 (patch)
treefa1ffae514e201500eb1269ce9c84f261a488d9e /pam_cap
parentafef3ef1c62613e1cac12a2bbec6017f7d5e033e (diff)
downloadplatform_external_libcap-d45a3d4812598fc056499fa4622be4af58076bd5.tar.gz
platform_external_libcap-d45a3d4812598fc056499fa4622be4af58076bd5.tar.bz2
platform_external_libcap-d45a3d4812598fc056499fa4622be4af58076bd5.zip
Ensure that gcc -std=c89 build works.
We're not using it, but it seems like a small price to pay for having targets I'm not building regularly continue to build. Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
Diffstat (limited to 'pam_cap')
-rw-r--r--pam_cap/pam_cap.c20
-rw-r--r--pam_cap/test_pam_cap.c26
2 files changed, 27 insertions, 19 deletions
diff --git a/pam_cap/pam_cap.c b/pam_cap/pam_cap.c
index 58ffe4a..d4c1e65 100644
--- a/pam_cap/pam_cap.c
+++ b/pam_cap/pam_cap.c
@@ -7,6 +7,8 @@
/* #define DEBUG */
+#define _DEFAULT_SOURCE
+
#include <errno.h>
#include <grp.h>
#include <limits.h>
@@ -18,6 +20,7 @@
#include <syslog.h>
#include <sys/capability.h>
#include <sys/types.h>
+#include <linux/limits.h>
#include <security/pam_modules.h>
#include <security/_pam_macros.h>
@@ -55,8 +58,8 @@ static int load_groups(const char *user, char ***groups, int *groups_n) {
}
*groups = calloc(ngrps, sizeof(char *));
- int g_n = 0;
- for (int i = 0; i < ngrps; i++) {
+ int g_n = 0, i;
+ for (i = 0; i < ngrps; i++) {
const struct group *g = getgrgid(grps[i]);
if (g == NULL) {
continue;
@@ -128,7 +131,8 @@ static char *read_capabilities_for_user(const char *user, const char *source)
D(("user [%s] is not [%s] - skipping", user, line));
}
- for (int i=0; i < groups_n; i++) {
+ int i;
+ for (i=0; i < groups_n; i++) {
if (!strcmp(groups[i], line+1)) {
D(("user group matched [%s]", line));
found_one = 1;
@@ -154,7 +158,8 @@ static char *read_capabilities_for_user(const char *user, const char *source)
defer:
memset(buffer, 0, CAP_FILE_BUFFER_SIZE);
- for (int i = 0; i < groups_n; i++) {
+ int i;
+ for (i = 0; i < groups_n; i++) {
char *g = groups[i];
_pam_overwrite(g);
_pam_drop(g);
@@ -221,7 +226,7 @@ static int set_capabilities(struct pam_cap_s *cs)
goto cleanup_caps;
}
if (cap_reset_ambient() == 0) {
- // Ambient set fully declared by this config.
+ /* Ambient set fully declared by this config. */
has_ambient = 1;
}
@@ -241,7 +246,7 @@ static int set_capabilities(struct pam_cap_s *cs)
if (has_bound) {
bound = calloc(max_caps, sizeof(int));
if (has_ambient) {
- // In kernel lineage, bound came first.
+ /* In kernel lineage, bound came first. */
ambient = calloc(max_caps, sizeof(int));
}
}
@@ -316,7 +321,8 @@ static int set_capabilities(struct pam_cap_s *cs)
if (cap_set_proc(cap_s)) {
D(("failed to set specified capabilities: %s", strerror(errno)));
} else {
- for (cap_value_t c = 0; c < max_caps; c++) {
+ cap_value_t c;
+ for (c = 0; c < max_caps; c++) {
if (ambient != NULL && ambient[c]) {
cap_set_ambient(c, CAP_SET);
}
diff --git a/pam_cap/test_pam_cap.c b/pam_cap/test_pam_cap.c
index 2f519f1..452a27f 100644
--- a/pam_cap/test_pam_cap.c
+++ b/pam_cap/test_pam_cap.c
@@ -17,15 +17,15 @@ const char *test_users[] = {
};
#define n_users sizeof(test_users)/sizeof(*test_users)
-// Note about memberships:
-//
-// user gid suppl groups
-// root root
-// alpha one two
-// beta two three four
-// gamma three four five six
-// delta four five six seven [eight]
-//
+/* Note about memberships:
+ *
+ * user gid suppl groups
+ * root root
+ * alpha one two
+ * beta two three four
+ * gamma three four five six
+ * delta four five six seven [eight]
+ */
static char *test_user;
@@ -76,7 +76,8 @@ struct group *getgrgid(gid_t gid) {
static struct passwd pw;
struct passwd *getpwnam(const char *name) {
- for (int i = 0; i < n_users; i++) {
+ int i;
+ for (i = 0; i < n_users; i++) {
if (strcmp(name, test_users[i]) == 0) {
pw.pw_gid = i;
return &pw;
@@ -99,7 +100,8 @@ struct passwd *getpwnam(const char *name) {
static void load_vectors(unsigned long int bits[3]) {
memset(bits, 0, 3*sizeof(unsigned long int));
cap_t prev = cap_get_proc();
- for (int i = 0; i < 64; i++) {
+ int i;
+ for (i = 0; i < 64; i++) {
unsigned long int mask = (1ULL << i);
int v = cap_get_bound(i);
if (v < 0) {
@@ -160,7 +162,7 @@ int main(int argc, char *argv[]) {
exit(1);
}
- // Now it is time to execute the credential setting
+ /* Now it is time to execute the credential setting */
load_vectors(before);
status = pam_sm_setcred(NULL, PAM_ESTABLISH_CRED, argc-4,