Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: cap: fix leaks
---
Src/Modules/cap.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/Src/Modules/cap.c b/Src/Modules/cap.c
index c79c9f07ce..6db7cbc2a1 100644
--- a/Src/Modules/cap.c
+++ b/Src/Modules/cap.c
@@ -37,14 +37,14 @@ bin_cap(char *nam, char **argv, UNUSED(Options ops), UNUSED(int func))
{
int ret = 0;
cap_t caps;
- if(*argv) {
+ if (*argv) {
unmetafy(*argv, NULL);
caps = cap_from_text(*argv);
- if(!caps) {
+ if (!caps) {
zwarnnam(nam, "invalid capability string");
return 1;
}
- if(cap_set_proc(caps)) {
+ if (cap_set_proc(caps)) {
zwarnnam(nam, "can't change capabilities: %e", errno);
ret = 1;
}
@@ -52,15 +52,18 @@ bin_cap(char *nam, char **argv, UNUSED(Options ops), UNUSED(int func))
char *result = NULL;
ssize_t length;
caps = cap_get_proc();
- if(caps)
+ if (caps)
result = cap_to_text(caps, &length);
- if(!caps || !result) {
+ if (!caps || !result) {
zwarnnam(nam, "can't get capabilities: %e", errno);
ret = 1;
} else
puts(result);
+ if (result)
+ cap_free(result);
}
- cap_free(caps);
+ if (caps)
+ cap_free(caps);
return ret;
}
@@ -75,14 +78,17 @@ bin_getcap(char *nam, char **argv, UNUSED(Options ops), UNUSED(int func))
cap_t caps;
caps = cap_get_file(unmetafy(dupstring(*argv), NULL));
- if(caps)
+ if (caps)
result = cap_to_text(caps, &length);
if (!caps || !result) {
zwarnnam(nam, "%s: %e", *argv, errno);
ret = 1;
} else
printf("%s %s\n", *argv, result);
- cap_free(caps);
+ if (result)
+ cap_free(result);
+ if (caps)
+ cap_free(caps);
} while(*++argv);
return ret;
}
@@ -95,13 +101,13 @@ bin_setcap(char *nam, char **argv, UNUSED(Options ops), UNUSED(int func))
unmetafy(*argv, NULL);
caps = cap_from_text(*argv++);
- if(!caps) {
+ if (!caps) {
zwarnnam(nam, "invalid capability string");
return 1;
}
do {
- if(cap_set_file(unmetafy(dupstring(*argv), NULL), caps)) {
+ if (cap_set_file(unmetafy(dupstring(*argv), NULL), caps)) {
zwarnnam(nam, "%s: %e", *argv, errno);
ret = 1;
}
--
2.38.1
Messages sorted by:
Reverse Date,
Date,
Thread,
Author