logo

utils

~/.local/bin tools and git-hooks git clone https://hacktivis.me/git/utils.git
commit: 8b894d54723b6b172903dbf6599cec7125c1ec68
parent e698a0a4cd0d41c17e13ffaf3d81a8762bf88f9d
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Fri, 28 Jul 2023 12:02:42 +0200

cmd/id: Fix memory allocation issues

Diffstat:

Mcmd/id.c23++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/cmd/id.c b/cmd/id.c @@ -230,6 +230,7 @@ main(int argc, char *argv[]) break; default: usage(); + free(groups); return 1; } } @@ -247,7 +248,7 @@ main(int argc, char *argv[]) if(ngroups < 0) { perror("getgroups"); - return 1; + goto failure; } } else if(argc == 1) @@ -256,7 +257,7 @@ main(int argc, char *argv[]) if(pw_n == NULL) { - return 1; + goto failure; } pw = *pw_n; epw = *pw_n; @@ -271,7 +272,7 @@ main(int argc, char *argv[]) if(ngroups < 0) { perror("getgrouplist"); - return 1; + goto failure; } } else @@ -309,10 +310,10 @@ main(int argc, char *argv[]) if(ret < 0) { - return 1; + goto failure; } - return 0; + goto done; } if(mode == ID_UID) @@ -342,10 +343,10 @@ main(int argc, char *argv[]) if(ret < 0) { - return 1; + goto failure; } - return 0; + goto done; } if(mode == ID_GROUPS) @@ -364,13 +365,13 @@ main(int argc, char *argv[]) goto failure; } - return 0; + goto done; } ret = print_uid("uid", &pw, uid); if(ret < 0) { - return 1; + goto failure; } if(euid != uid) @@ -406,14 +407,14 @@ main(int argc, char *argv[]) ret = printf("\n"); if(ret < 0) { - return 1; + goto failure; } +done: free(groups); return 0; failure: - printf("\n"); free(groups); return 1; }