diff options
author | David Howells <dhowells@redhat.com> | 2014-01-15 15:07:06 +0000 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2014-01-15 15:07:06 +0000 |
commit | 47cf4085c2525c8a15607b5ae0726cde0f3ec413 (patch) | |
tree | a077dae4b140a3bd8b05c874fdfb02ff89da6511 | |
parent | a6523da06977c3ed4d288f533dc58250a4e69189 (diff) | |
download | keyutils-47cf4085c2525c8a15607b5ae0726cde0f3ec413.tar.gz |
keyctl: Exit rather than returning from act_xxx() functions
Exit rather than returning from act_xxx() functions so that the Coverity
checker doesn't think that memory is leaked from functions that allocate
memory.
Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r-- | keyctl.c | 232 |
1 files changed, 117 insertions, 115 deletions
@@ -22,48 +22,50 @@ #include "keyutils.h" struct command { - int (*action)(int argc, char *argv[]); + void (*action)(int argc, char *argv[]) __attribute__((noreturn)); const char *name; const char *format; }; -static int act_keyctl___version(int argc, char *argv[]); -static int act_keyctl_show(int argc, char *argv[]); -static int act_keyctl_add(int argc, char *argv[]); -static int act_keyctl_padd(int argc, char *argv[]); -static int act_keyctl_request(int argc, char *argv[]); -static int act_keyctl_request2(int argc, char *argv[]); -static int act_keyctl_prequest2(int argc, char *argv[]); -static int act_keyctl_update(int argc, char *argv[]); -static int act_keyctl_pupdate(int argc, char *argv[]); -static int act_keyctl_newring(int argc, char *argv[]); -static int act_keyctl_revoke(int argc, char *argv[]); -static int act_keyctl_clear(int argc, char *argv[]); -static int act_keyctl_link(int argc, char *argv[]); -static int act_keyctl_unlink(int argc, char *argv[]); -static int act_keyctl_search(int argc, char *argv[]); -static int act_keyctl_read(int argc, char *argv[]); -static int act_keyctl_pipe(int argc, char *argv[]); -static int act_keyctl_print(int argc, char *argv[]); -static int act_keyctl_list(int argc, char *argv[]); -static int act_keyctl_rlist(int argc, char *argv[]); -static int act_keyctl_describe(int argc, char *argv[]); -static int act_keyctl_rdescribe(int argc, char *argv[]); -static int act_keyctl_chown(int argc, char *argv[]); -static int act_keyctl_chgrp(int argc, char *argv[]); -static int act_keyctl_setperm(int argc, char *argv[]); -static int act_keyctl_session(int argc, char *argv[]); -static int act_keyctl_instantiate(int argc, char *argv[]); -static int act_keyctl_pinstantiate(int argc, char *argv[]); -static int act_keyctl_negate(int argc, char *argv[]); -static int act_keyctl_timeout(int argc, char *argv[]); -static int act_keyctl_security(int argc, char *argv[]); -static int act_keyctl_new_session(int argc, char *argv[]); -static int act_keyctl_reject(int argc, char *argv[]); -static int act_keyctl_reap(int argc, char *argv[]); -static int act_keyctl_purge(int argc, char *argv[]); -static int act_keyctl_invalidate(int argc, char *argv[]); -static int act_keyctl_get_persistent(int argc, char *argv[]); +#define nr __attribute__((noreturn)) + +static nr void act_keyctl___version(int argc, char *argv[]); +static nr void act_keyctl_show(int argc, char *argv[]); +static nr void act_keyctl_add(int argc, char *argv[]); +static nr void act_keyctl_padd(int argc, char *argv[]); +static nr void act_keyctl_request(int argc, char *argv[]); +static nr void act_keyctl_request2(int argc, char *argv[]); +static nr void act_keyctl_prequest2(int argc, char *argv[]); +static nr void act_keyctl_update(int argc, char *argv[]); +static nr void act_keyctl_pupdate(int argc, char *argv[]); +static nr void act_keyctl_newring(int argc, char *argv[]); +static nr void act_keyctl_revoke(int argc, char *argv[]); +static nr void act_keyctl_clear(int argc, char *argv[]); +static nr void act_keyctl_link(int argc, char *argv[]); +static nr void act_keyctl_unlink(int argc, char *argv[]); +static nr void act_keyctl_search(int argc, char *argv[]); +static nr void act_keyctl_read(int argc, char *argv[]); +static nr void act_keyctl_pipe(int argc, char *argv[]); +static nr void act_keyctl_print(int argc, char *argv[]); +static nr void act_keyctl_list(int argc, char *argv[]); +static nr void act_keyctl_rlist(int argc, char *argv[]); +static nr void act_keyctl_describe(int argc, char *argv[]); +static nr void act_keyctl_rdescribe(int argc, char *argv[]); +static nr void act_keyctl_chown(int argc, char *argv[]); +static nr void act_keyctl_chgrp(int argc, char *argv[]); +static nr void act_keyctl_setperm(int argc, char *argv[]); +static nr void act_keyctl_session(int argc, char *argv[]); +static nr void act_keyctl_instantiate(int argc, char *argv[]); +static nr void act_keyctl_pinstantiate(int argc, char *argv[]); +static nr void act_keyctl_negate(int argc, char *argv[]); +static nr void act_keyctl_timeout(int argc, char *argv[]); +static nr void act_keyctl_security(int argc, char *argv[]); +static nr void act_keyctl_new_session(int argc, char *argv[]); +static nr void act_keyctl_reject(int argc, char *argv[]); +static nr void act_keyctl_reap(int argc, char *argv[]); +static nr void act_keyctl_purge(int argc, char *argv[]); +static nr void act_keyctl_invalidate(int argc, char *argv[]); +static nr void act_keyctl_get_persistent(int argc, char *argv[]); const struct command commands[] = { { act_keyctl___version, "--version", "" }, @@ -192,7 +194,7 @@ int main(int argc, char *argv[]) if (myngroups < 0) error("Unable to get Groups\n"); - return best->action(argc, argv); + best->action(argc, argv); } /* end main() */ @@ -231,11 +233,11 @@ static void format(void) /* * Display version information */ -static int act_keyctl___version(int argc, char *argv[]) +static void act_keyctl___version(int argc, char *argv[]) { printf("keyctl from %s (Built %s)\n", keyutils_version_string, keyutils_build_string); - return 0; + exit(0); } /*****************************************************************************/ @@ -322,7 +324,7 @@ write_mask: /* * show the parent process's session keyring */ -static int act_keyctl_show(int argc, char *argv[]) +static void act_keyctl_show(int argc, char *argv[]) { key_serial_t keyring = KEY_SPEC_SESSION_KEYRING; int hex_key_IDs = 0; @@ -340,7 +342,7 @@ static int act_keyctl_show(int argc, char *argv[]) keyring = get_key_id(argv[1]); dump_key_tree(keyring, argc == 2 ? "Keyring" : "Session Keyring", hex_key_IDs); - return 0; + exit(0); } /* end act_keyctl_show() */ @@ -348,7 +350,7 @@ static int act_keyctl_show(int argc, char *argv[]) /* * add a key */ -static int act_keyctl_add(int argc, char *argv[]) +static void act_keyctl_add(int argc, char *argv[]) { key_serial_t dest; int ret; @@ -364,7 +366,7 @@ static int act_keyctl_add(int argc, char *argv[]) /* print the resulting key ID */ printf("%d\n", ret); - return 0; + exit(0); } /* end act_keyctl_add() */ @@ -372,7 +374,7 @@ static int act_keyctl_add(int argc, char *argv[]) /* * add a key, reading from a pipe */ -static int act_keyctl_padd(int argc, char *argv[]) +static void act_keyctl_padd(int argc, char *argv[]) { key_serial_t dest; size_t datalen; @@ -393,7 +395,7 @@ static int act_keyctl_padd(int argc, char *argv[]) /* print the resulting key ID */ printf("%d\n", ret); - return 0; + exit(0); } /* end act_keyctl_padd() */ @@ -401,7 +403,7 @@ static int act_keyctl_padd(int argc, char *argv[]) /* * request a key */ -static int act_keyctl_request(int argc, char *argv[]) +static void act_keyctl_request(int argc, char *argv[]) { key_serial_t dest; int ret; @@ -419,7 +421,7 @@ static int act_keyctl_request(int argc, char *argv[]) /* print the resulting key ID */ printf("%d\n", ret); - return 0; + exit(0); } /* end act_keyctl_request() */ @@ -427,7 +429,7 @@ static int act_keyctl_request(int argc, char *argv[]) /* * request a key, with recourse to /sbin/request-key */ -static int act_keyctl_request2(int argc, char *argv[]) +static void act_keyctl_request2(int argc, char *argv[]) { key_serial_t dest; int ret; @@ -445,7 +447,7 @@ static int act_keyctl_request2(int argc, char *argv[]) /* print the resulting key ID */ printf("%d\n", ret); - return 0; + exit(0); } /* end act_keyctl_request2() */ @@ -454,7 +456,7 @@ static int act_keyctl_request2(int argc, char *argv[]) * request a key, with recourse to /sbin/request-key, reading the callout info * from a pipe */ -static int act_keyctl_prequest2(int argc, char *argv[]) +static void act_keyctl_prequest2(int argc, char *argv[]) { char *args[6]; size_t datalen; @@ -469,7 +471,7 @@ static int act_keyctl_prequest2(int argc, char *argv[]) args[4] = argv[3]; args[5] = NULL; - return act_keyctl_request2(argc + 1, args); + act_keyctl_request2(argc + 1, args); } /* end act_keyctl_prequest2() */ @@ -477,7 +479,7 @@ static int act_keyctl_prequest2(int argc, char *argv[]) /* * update a key */ -static int act_keyctl_update(int argc, char *argv[]) +static void act_keyctl_update(int argc, char *argv[]) { key_serial_t key; @@ -489,7 +491,7 @@ static int act_keyctl_update(int argc, char *argv[]) if (keyctl_update(key, argv[2], strlen(argv[2])) < 0) error("keyctl_update"); - return 0; + exit(0); } /* end act_keyctl_update() */ @@ -497,7 +499,7 @@ static int act_keyctl_update(int argc, char *argv[]) /* * update a key, reading from a pipe */ -static int act_keyctl_pupdate(int argc, char *argv[]) +static void act_keyctl_pupdate(int argc, char *argv[]) { key_serial_t key; size_t datalen; @@ -512,7 +514,7 @@ static int act_keyctl_pupdate(int argc, char *argv[]) if (keyctl_update(key, data, datalen) < 0) error("keyctl_update"); - return 0; + exit(0); } /* end act_keyctl_pupdate() */ @@ -520,7 +522,7 @@ static int act_keyctl_pupdate(int argc, char *argv[]) /* * create a new keyring */ -static int act_keyctl_newring(int argc, char *argv[]) +static void act_keyctl_newring(int argc, char *argv[]) { key_serial_t dest; int ret; @@ -535,7 +537,7 @@ static int act_keyctl_newring(int argc, char *argv[]) error("add_key"); printf("%d\n", ret); - return 0; + exit(0); } /* end act_keyctl_newring() */ @@ -543,7 +545,7 @@ static int act_keyctl_newring(int argc, char *argv[]) /* * revoke a key */ -static int act_keyctl_revoke(int argc, char *argv[]) +static void act_keyctl_revoke(int argc, char *argv[]) { key_serial_t key; @@ -555,7 +557,7 @@ static int act_keyctl_revoke(int argc, char *argv[]) if (keyctl_revoke(key) < 0) error("keyctl_revoke"); - return 0; + exit(0); } /* end act_keyctl_revoke() */ @@ -563,7 +565,7 @@ static int act_keyctl_revoke(int argc, char *argv[]) /* * clear a keyring */ -static int act_keyctl_clear(int argc, char *argv[]) +static void act_keyctl_clear(int argc, char *argv[]) { key_serial_t keyring; @@ -575,7 +577,7 @@ static int act_keyctl_clear(int argc, char *argv[]) if (keyctl_clear(keyring) < 0) error("keyctl_clear"); - return 0; + exit(0); } /* end act_keyctl_clear() */ @@ -583,7 +585,7 @@ static int act_keyctl_clear(int argc, char *argv[]) /* * link a key to a keyring */ -static int act_keyctl_link(int argc, char *argv[]) +static void act_keyctl_link(int argc, char *argv[]) { key_serial_t keyring, key; @@ -596,7 +598,7 @@ static int act_keyctl_link(int argc, char *argv[]) if (keyctl_link(key, keyring) < 0) error("keyctl_link"); - return 0; + exit(0); } /* end act_keyctl_link() */ @@ -616,7 +618,7 @@ static int act_keyctl_unlink_func(key_serial_t parent, key_serial_t key, /* * Unlink a key from a keyring or from the session keyring tree. */ -static int act_keyctl_unlink(int argc, char *argv[]) +static void act_keyctl_unlink(int argc, char *argv[]) { key_serial_t keyring, key; int n; @@ -635,14 +637,14 @@ static int act_keyctl_unlink(int argc, char *argv[]) printf("%d links removed\n", n); } - return 0; + exit(0); } /*****************************************************************************/ /* * search a keyring for a key */ -static int act_keyctl_search(int argc, char *argv[]) +static void act_keyctl_search(int argc, char *argv[]) { key_serial_t keyring, dest; int ret; @@ -662,7 +664,7 @@ static int act_keyctl_search(int argc, char *argv[]) /* print the ID of the key we found */ printf("%d\n", ret); - return 0; + exit(0); } /* end act_keyctl_search() */ @@ -670,7 +672,7 @@ static int act_keyctl_search(int argc, char *argv[]) /* * read a key */ -static int act_keyctl_read(int argc, char *argv[]) +static void act_keyctl_read(int argc, char *argv[]) { key_serial_t key; void *buffer; @@ -689,7 +691,7 @@ static int act_keyctl_read(int argc, char *argv[]) if (ret == 0) { printf("No data in key\n"); - return 0; + exit(0); } /* hexdump the contents */ @@ -717,7 +719,7 @@ static int act_keyctl_read(int argc, char *argv[]) } while (--ret > 0); printf("\n"); - return 0; + exit(0); } /* end act_keyctl_read() */ @@ -725,7 +727,7 @@ static int act_keyctl_read(int argc, char *argv[]) /* * read a key and dump raw to stdout */ -static int act_keyctl_pipe(int argc, char *argv[]) +static void act_keyctl_pipe(int argc, char *argv[]) { key_serial_t key; void *buffer; @@ -743,7 +745,7 @@ static int act_keyctl_pipe(int argc, char *argv[]) if (ret > 0 && write(1, buffer, ret) < 0) error("write"); - return 0; + exit(0); } /* end act_keyctl_pipe() */ @@ -751,7 +753,7 @@ static int act_keyctl_pipe(int argc, char *argv[]) /* * read a key and dump to stdout in printable form */ -static int act_keyctl_print(int argc, char *argv[]) +static void act_keyctl_print(int argc, char *argv[]) { key_serial_t key; void *buffer; @@ -776,7 +778,7 @@ static int act_keyctl_print(int argc, char *argv[]) /* it is */ printf("%s\n", (char *) buffer); - return 0; + exit(0); not_printable: /* it isn't */ @@ -785,7 +787,7 @@ not_printable: for (loop = ret; loop > 0; loop--, p++) printf("%02hhx", *p); printf("\n"); - return 0; + exit(0); } /* end act_keyctl_print() */ @@ -793,7 +795,7 @@ not_printable: /* * list a keyring */ -static int act_keyctl_list(int argc, char *argv[]) +static void act_keyctl_list(int argc, char *argv[]) { key_serial_t keyring, key, *pk; key_perm_t perm; @@ -817,7 +819,7 @@ static int act_keyctl_list(int argc, char *argv[]) if (count == 0) { printf("keyring is empty\n"); - return 0; + exit(0); } /* list the keys in the keyring */ @@ -863,7 +865,7 @@ static int act_keyctl_list(int argc, char *argv[]) } while (--count); - return 0; + exit(0); } /* end act_keyctl_list() */ @@ -871,7 +873,7 @@ static int act_keyctl_list(int argc, char *argv[]) /* * produce a raw list of a keyring */ -static int act_keyctl_rlist(int argc, char *argv[]) +static void act_keyctl_rlist(int argc, char *argv[]) { key_serial_t keyring, key, *pk; void *keylist; @@ -901,7 +903,7 @@ static int act_keyctl_rlist(int argc, char *argv[]) } } - return 0; + exit(0); } /* end act_keyctl_rlist() */ @@ -909,7 +911,7 @@ static int act_keyctl_rlist(int argc, char *argv[]) /* * describe a key */ -static int act_keyctl_describe(int argc, char *argv[]) +static void act_keyctl_describe(int argc, char *argv[]) { key_serial_t key; key_perm_t perm; @@ -979,7 +981,7 @@ static int act_keyctl_describe(int argc, char *argv[]) tlen, tlen, buffer, buffer + dpos); - return 0; + exit(0); } /* end act_keyctl_describe() */ @@ -987,7 +989,7 @@ static int act_keyctl_describe(int argc, char *argv[]) /* * get raw key description */ -static int act_keyctl_rdescribe(int argc, char *argv[]) +static void act_keyctl_rdescribe(int argc, char *argv[]) { key_serial_t key; char *buffer, *q; @@ -1014,7 +1016,7 @@ static int act_keyctl_rdescribe(int argc, char *argv[]) /* display raw description */ printf("%s\n", buffer); - return 0; + exit(0); } /* end act_keyctl_rdescribe() */ @@ -1022,7 +1024,7 @@ static int act_keyctl_rdescribe(int argc, char *argv[]) /* * change a key's ownership */ -static int act_keyctl_chown(int argc, char *argv[]) +static void act_keyctl_chown(int argc, char *argv[]) { key_serial_t key; uid_t uid; @@ -1042,7 +1044,7 @@ static int act_keyctl_chown(int argc, char *argv[]) if (keyctl_chown(key, uid, -1) < 0) error("keyctl_chown"); - return 0; + exit(0); } /* end act_keyctl_chown() */ @@ -1050,7 +1052,7 @@ static int act_keyctl_chown(int argc, char *argv[]) /* * change a key's group ownership */ -static int act_keyctl_chgrp(int argc, char *argv[]) +static void act_keyctl_chgrp(int argc, char *argv[]) { key_serial_t key; gid_t gid; @@ -1070,7 +1072,7 @@ static int act_keyctl_chgrp(int argc, char *argv[]) if (keyctl_chown(key, -1, gid) < 0) error("keyctl_chown"); - return 0; + exit(0); } /* end act_keyctl_chgrp() */ @@ -1078,7 +1080,7 @@ static int act_keyctl_chgrp(int argc, char *argv[]) /* * set the permissions on a key */ -static int act_keyctl_setperm(int argc, char *argv[]) +static void act_keyctl_setperm(int argc, char *argv[]) { key_serial_t key; key_perm_t perm; @@ -1097,7 +1099,7 @@ static int act_keyctl_setperm(int argc, char *argv[]) if (keyctl_setperm(key, perm) < 0) error("keyctl_setperm"); - return 0; + exit(0); } /* end act_keyctl_setperm() */ @@ -1105,7 +1107,7 @@ static int act_keyctl_setperm(int argc, char *argv[]) /* * start a process in a new session */ -static int act_keyctl_session(int argc, char *argv[]) +static void act_keyctl_session(int argc, char *argv[]) { char *p, *q; int ret; @@ -1152,7 +1154,7 @@ static int act_keyctl_session(int argc, char *argv[]) /* * instantiate a key that's under construction */ -static int act_keyctl_instantiate(int argc, char *argv[]) +static void act_keyctl_instantiate(int argc, char *argv[]) { key_serial_t key, dest; @@ -1165,7 +1167,7 @@ static int act_keyctl_instantiate(int argc, char *argv[]) if (keyctl_instantiate(key, argv[2], strlen(argv[2]), dest) < 0) error("keyctl_instantiate"); - return 0; + exit(0); } /* end act_keyctl_instantiate() */ @@ -1173,7 +1175,7 @@ static int act_keyctl_instantiate(int argc, char *argv[]) /* * instantiate a key, reading from a pipe */ -static int act_keyctl_pinstantiate(int argc, char *argv[]) +static void act_keyctl_pinstantiate(int argc, char *argv[]) { key_serial_t key, dest; size_t datalen; @@ -1189,7 +1191,7 @@ static int act_keyctl_pinstantiate(int argc, char *argv[]) if (keyctl_instantiate(key, data, datalen, dest) < 0) error("keyctl_instantiate"); - return 0; + exit(0); } /* end act_keyctl_pinstantiate() */ @@ -1197,7 +1199,7 @@ static int act_keyctl_pinstantiate(int argc, char *argv[]) /* * negate a key that's under construction */ -static int act_keyctl_negate(int argc, char *argv[]) +static void act_keyctl_negate(int argc, char *argv[]) { unsigned long timeout; key_serial_t key, dest; @@ -1219,7 +1221,7 @@ static int act_keyctl_negate(int argc, char *argv[]) if (keyctl_negate(key, timeout, dest) < 0) error("keyctl_negate"); - return 0; + exit(0); } /* end act_keyctl_negate() */ @@ -1227,7 +1229,7 @@ static int act_keyctl_negate(int argc, char *argv[]) /* * set a key's timeout */ -static int act_keyctl_timeout(int argc, char *argv[]) +static void act_keyctl_timeout(int argc, char *argv[]) { unsigned long timeout; key_serial_t key; @@ -1247,7 +1249,7 @@ static int act_keyctl_timeout(int argc, char *argv[]) if (keyctl_set_timeout(key, timeout) < 0) error("keyctl_set_timeout"); - return 0; + exit(0); } /* end act_keyctl_timeout() */ @@ -1255,7 +1257,7 @@ static int act_keyctl_timeout(int argc, char *argv[]) /* * get a key's security label */ -static int act_keyctl_security(int argc, char *argv[]) +static void act_keyctl_security(int argc, char *argv[]) { key_serial_t key; char *buffer; @@ -1272,14 +1274,14 @@ static int act_keyctl_security(int argc, char *argv[]) error("keyctl_getsecurity"); printf("%s\n", buffer); - return 0; + exit(0); } /*****************************************************************************/ /* * install a new session keyring on the parent process */ -static int act_keyctl_new_session(int argc, char *argv[]) +static void act_keyctl_new_session(int argc, char *argv[]) { key_serial_t keyring; @@ -1298,14 +1300,14 @@ static int act_keyctl_new_session(int argc, char *argv[]) /* print the resulting key ID */ printf("%d\n", keyring); - return 0; + exit(0); } /*****************************************************************************/ /* * reject a key that's under construction */ -static int act_keyctl_reject(int argc, char *argv[]) +static void act_keyctl_reject(int argc, char *argv[]) { unsigned long timeout; key_serial_t key, dest; @@ -1342,7 +1344,7 @@ static int act_keyctl_reject(int argc, char *argv[]) if (keyctl_reject(key, timeout, rejerr, dest) < 0) error("keyctl_negate"); - return 0; + exit(0); } /* @@ -1371,7 +1373,7 @@ static int act_keyctl_reap_func(key_serial_t parent, key_serial_t key, /* * Reap the dead keys from the session keyring tree */ -static int act_keyctl_reap(int argc, char *argv[]) +static void act_keyctl_reap(int argc, char *argv[]) { int n; @@ -1386,7 +1388,7 @@ static int act_keyctl_reap(int argc, char *argv[]) n = recursive_session_key_scan(act_keyctl_reap_func, NULL); printf("%d keys reaped\n", n); - return 0; + exit(0); } struct purge_data { @@ -1500,7 +1502,7 @@ static int act_keyctl_purge_search_func(key_serial_t parent, key_serial_t keyrin /* * Purge matching keys from a keyring */ -static int act_keyctl_purge(int argc, char *argv[]) +static void act_keyctl_purge(int argc, char *argv[]) { recursive_key_scanner_t func; struct purge_data purge = { @@ -1553,14 +1555,14 @@ static int act_keyctl_purge(int argc, char *argv[]) n = recursive_session_key_scan(func, &purge); printf("purged %d keys\n", n); - return 0; + exit(0); } /*****************************************************************************/ /* * Invalidate a key */ -static int act_keyctl_invalidate(int argc, char *argv[]) +static void act_keyctl_invalidate(int argc, char *argv[]) { key_serial_t key; @@ -1572,14 +1574,14 @@ static int act_keyctl_invalidate(int argc, char *argv[]) if (keyctl_invalidate(key) < 0) error("keyctl_invalidate"); - return 0; + exit(0); } /*****************************************************************************/ /* * Get the per-UID persistent keyring */ -static int act_keyctl_get_persistent(int argc, char *argv[]) +static void act_keyctl_get_persistent(int argc, char *argv[]) { key_serial_t dest, ret; uid_t uid = -1; @@ -1604,7 +1606,7 @@ static int act_keyctl_get_persistent(int argc, char *argv[]) /* print the resulting key ID */ printf("%d\n", ret); - return 0; + exit(0); } /*****************************************************************************/ |