summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2013-06-02 08:07:31 +1000
committerDarren Tucker <dtucker@zip.com.au>2013-06-02 08:07:31 +1000
commitf60845fde29cead9d75e812db1c04916b4c58ffd (patch)
treea69fe76f6dd73057e46625867d1b4282e8a5a040
parent12f6533215c0a36ab29d11ff52a853fce45573b4 (diff)
- (dtucker) [M auth-chall.c auth-krb5.c auth-pam.c cipher-aes.c cipher-ctr.c
groupaccess.c loginrec.c monitor.c monitor_wrap.c session.c sshd.c sshlogin.c uidswap.c openbsd-compat/bsd-cygwin_util.c openbsd-compat/getrrsetbyname-ldns.c openbsd-compat/port-aix.c openbsd-compat/port-linux.c] Replace portable-specific instances of xfree with the equivalent calls to free.
-rw-r--r--ChangeLog6
-rw-r--r--auth-chall.c10
-rw-r--r--auth-krb5.c3
-rw-r--r--auth-pam.c44
-rw-r--r--cipher-aes.c2
-rw-r--r--cipher-ctr.c2
-rw-r--r--groupaccess.c4
-rw-r--r--loginrec.c2
-rw-r--r--monitor.c20
-rw-r--r--monitor_wrap.c4
-rw-r--r--openbsd-compat/bsd-cygwin_util.c2
-rw-r--r--openbsd-compat/getrrsetbyname-ldns.c1
-rw-r--r--openbsd-compat/port-aix.c10
-rw-r--r--openbsd-compat/port-linux.c12
-rw-r--r--session.c8
-rw-r--r--sshd.c2
-rw-r--r--sshlogin.c2
-rw-r--r--uidswap.c6
18 files changed, 66 insertions, 74 deletions
diff --git a/ChangeLog b/ChangeLog
index c64a40468..7f4323e07 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -48,6 +48,12 @@
48 [scp.c sftp-client.c] 48 [scp.c sftp-client.c]
49 Replace S_IWRITE, which isn't standardized, with S_IWUSR, which is. Patch 49 Replace S_IWRITE, which isn't standardized, with S_IWUSR, which is. Patch
50 from Nathan Osman via bz#2085. ok deraadt. 50 from Nathan Osman via bz#2085. ok deraadt.
51 - (dtucker) [M auth-chall.c auth-krb5.c auth-pam.c cipher-aes.c cipher-ctr.c
52 groupaccess.c loginrec.c monitor.c monitor_wrap.c session.c sshd.c
53 sshlogin.c uidswap.c openbsd-compat/bsd-cygwin_util.c
54 openbsd-compat/getrrsetbyname-ldns.c openbsd-compat/port-aix.c
55 openbsd-compat/port-linux.c] Replace portable-specific instances of xfree
56 with the equivalent calls to free.
51 57
5220130529 5820130529
53 - (dtucker) [configure.ac openbsd-compat/bsd-misc.h] bz#2087: Add a null 59 - (dtucker) [configure.ac openbsd-compat/bsd-misc.h] bz#2087: Add a null
diff --git a/auth-chall.c b/auth-chall.c
index bfc51eae6..0005aa88b 100644
--- a/auth-chall.c
+++ b/auth-chall.c
@@ -102,11 +102,11 @@ verify_response(Authctxt *authctxt, const char *response)
102 authenticated = 1; 102 authenticated = 1;
103 103
104 for (i = 0; i < numprompts; i++) 104 for (i = 0; i < numprompts; i++)
105 xfree(prompts[i]); 105 free(prompts[i]);
106 xfree(prompts); 106 free(prompts);
107 xfree(name); 107 free(name);
108 xfree(echo_on); 108 free(echo_on);
109 xfree(info); 109 free(info);
110 break; 110 break;
111 } 111 }
112 device->free_ctx(authctxt->kbdintctxt); 112 device->free_ctx(authctxt->kbdintctxt);
diff --git a/auth-krb5.c b/auth-krb5.c
index 922c66c66..ff1462ad1 100644
--- a/auth-krb5.c
+++ b/auth-krb5.c
@@ -181,8 +181,7 @@ auth_krb5_password(Authctxt *authctxt, const char *password)
181 out: 181 out:
182 restore_uid(); 182 restore_uid();
183 183
184 if (platform_client != NULL) 184 free(platform_client);
185 xfree(platform_client);
186 185
187 if (problem) { 186 if (problem) {
188 if (ccache) 187 if (ccache)
diff --git a/auth-pam.c b/auth-pam.c
index 675006e6f..d51318b3a 100644
--- a/auth-pam.c
+++ b/auth-pam.c
@@ -412,10 +412,9 @@ sshpam_thread_conv(int n, sshpam_const struct pam_message **msg,
412 412
413 fail: 413 fail:
414 for(i = 0; i < n; i++) { 414 for(i = 0; i < n; i++) {
415 if (reply[i].resp != NULL) 415 free(reply[i].resp);
416 xfree(reply[i].resp);
417 } 416 }
418 xfree(reply); 417 free(reply);
419 buffer_free(&buffer); 418 buffer_free(&buffer);
420 return (PAM_CONV_ERR); 419 return (PAM_CONV_ERR);
421} 420}
@@ -586,10 +585,9 @@ sshpam_store_conv(int n, sshpam_const struct pam_message **msg,
586 585
587 fail: 586 fail:
588 for(i = 0; i < n; i++) { 587 for(i = 0; i < n; i++) {
589 if (reply[i].resp != NULL) 588 free(reply[i].resp);
590 xfree(reply[i].resp);
591 } 589 }
592 xfree(reply); 590 free(reply);
593 return (PAM_CONV_ERR); 591 return (PAM_CONV_ERR);
594} 592}
595 593
@@ -693,7 +691,7 @@ sshpam_init_ctx(Authctxt *authctxt)
693 /* Start the authentication thread */ 691 /* Start the authentication thread */
694 if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, socks) == -1) { 692 if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, socks) == -1) {
695 error("PAM: failed create sockets: %s", strerror(errno)); 693 error("PAM: failed create sockets: %s", strerror(errno));
696 xfree(ctxt); 694 free(ctxt);
697 return (NULL); 695 return (NULL);
698 } 696 }
699 ctxt->pam_psock = socks[0]; 697 ctxt->pam_psock = socks[0];
@@ -703,7 +701,7 @@ sshpam_init_ctx(Authctxt *authctxt)
703 strerror(errno)); 701 strerror(errno));
704 close(socks[0]); 702 close(socks[0]);
705 close(socks[1]); 703 close(socks[1]);
706 xfree(ctxt); 704 free(ctxt);
707 return (NULL); 705 return (NULL);
708 } 706 }
709 cleanup_ctxt = ctxt; 707 cleanup_ctxt = ctxt;
@@ -742,7 +740,7 @@ sshpam_query(void *ctx, char **name, char **info,
742 strlcpy(**prompts + plen, msg, len - plen); 740 strlcpy(**prompts + plen, msg, len - plen);
743 plen += mlen; 741 plen += mlen;
744 **echo_on = (type == PAM_PROMPT_ECHO_ON); 742 **echo_on = (type == PAM_PROMPT_ECHO_ON);
745 xfree(msg); 743 free(msg);
746 return (0); 744 return (0);
747 case PAM_ERROR_MSG: 745 case PAM_ERROR_MSG:
748 case PAM_TEXT_INFO: 746 case PAM_TEXT_INFO:
@@ -753,7 +751,7 @@ sshpam_query(void *ctx, char **name, char **info,
753 plen += mlen; 751 plen += mlen;
754 strlcat(**prompts + plen, "\n", len - plen); 752 strlcat(**prompts + plen, "\n", len - plen);
755 plen++; 753 plen++;
756 xfree(msg); 754 free(msg);
757 break; 755 break;
758 case PAM_ACCT_EXPIRED: 756 case PAM_ACCT_EXPIRED:
759 sshpam_account_status = 0; 757 sshpam_account_status = 0;
@@ -766,7 +764,7 @@ sshpam_query(void *ctx, char **name, char **info,
766 *num = 0; 764 *num = 0;
767 **echo_on = 0; 765 **echo_on = 0;
768 ctxt->pam_done = -1; 766 ctxt->pam_done = -1;
769 xfree(msg); 767 free(msg);
770 return 0; 768 return 0;
771 } 769 }
772 /* FALLTHROUGH */ 770 /* FALLTHROUGH */
@@ -776,7 +774,7 @@ sshpam_query(void *ctx, char **name, char **info,
776 debug("PAM: %s", **prompts); 774 debug("PAM: %s", **prompts);
777 buffer_append(&loginmsg, **prompts, 775 buffer_append(&loginmsg, **prompts,
778 strlen(**prompts)); 776 strlen(**prompts));
779 xfree(**prompts); 777 free(**prompts);
780 **prompts = NULL; 778 **prompts = NULL;
781 } 779 }
782 if (type == PAM_SUCCESS) { 780 if (type == PAM_SUCCESS) {
@@ -790,7 +788,7 @@ sshpam_query(void *ctx, char **name, char **info,
790 *num = 0; 788 *num = 0;
791 **echo_on = 0; 789 **echo_on = 0;
792 ctxt->pam_done = 1; 790 ctxt->pam_done = 1;
793 xfree(msg); 791 free(msg);
794 return (0); 792 return (0);
795 } 793 }
796 error("PAM: %s for %s%.100s from %.100s", msg, 794 error("PAM: %s for %s%.100s from %.100s", msg,
@@ -801,7 +799,7 @@ sshpam_query(void *ctx, char **name, char **info,
801 default: 799 default:
802 *num = 0; 800 *num = 0;
803 **echo_on = 0; 801 **echo_on = 0;
804 xfree(msg); 802 free(msg);
805 ctxt->pam_done = -1; 803 ctxt->pam_done = -1;
806 return (-1); 804 return (-1);
807 } 805 }
@@ -852,7 +850,7 @@ sshpam_free_ctx(void *ctxtp)
852 850
853 debug3("PAM: %s entering", __func__); 851 debug3("PAM: %s entering", __func__);
854 sshpam_thread_cleanup(); 852 sshpam_thread_cleanup();
855 xfree(ctxt); 853 free(ctxt);
856 /* 854 /*
857 * We don't call sshpam_cleanup() here because we may need the PAM 855 * We don't call sshpam_cleanup() here because we may need the PAM
858 * handle at a later stage, e.g. when setting up a session. It's 856 * handle at a later stage, e.g. when setting up a session. It's
@@ -1006,10 +1004,9 @@ sshpam_tty_conv(int n, sshpam_const struct pam_message **msg,
1006 1004
1007 fail: 1005 fail:
1008 for(i = 0; i < n; i++) { 1006 for(i = 0; i < n; i++) {
1009 if (reply[i].resp != NULL) 1007 free(reply[i].resp);
1010 xfree(reply[i].resp);
1011 } 1008 }
1012 xfree(reply); 1009 free(reply);
1013 return (PAM_CONV_ERR); 1010 return (PAM_CONV_ERR);
1014} 1011}
1015 1012
@@ -1081,7 +1078,7 @@ do_pam_putenv(char *name, char *value)
1081 1078
1082 snprintf(compound, len, "%s=%s", name, value); 1079 snprintf(compound, len, "%s=%s", name, value);
1083 ret = pam_putenv(sshpam_handle, compound); 1080 ret = pam_putenv(sshpam_handle, compound);
1084 xfree(compound); 1081 free(compound);
1085#endif 1082#endif
1086 1083
1087 return (ret); 1084 return (ret);
@@ -1108,8 +1105,8 @@ free_pam_environment(char **env)
1108 return; 1105 return;
1109 1106
1110 for (envp = env; *envp; envp++) 1107 for (envp = env; *envp; envp++)
1111 xfree(*envp); 1108 free(*envp);
1112 xfree(env); 1109 free(env);
1113} 1110}
1114 1111
1115/* 1112/*
@@ -1165,10 +1162,9 @@ sshpam_passwd_conv(int n, sshpam_const struct pam_message **msg,
1165 1162
1166 fail: 1163 fail:
1167 for(i = 0; i < n; i++) { 1164 for(i = 0; i < n; i++) {
1168 if (reply[i].resp != NULL) 1165 free(reply[i].resp);
1169 xfree(reply[i].resp);
1170 } 1166 }
1171 xfree(reply); 1167 free(reply);
1172 return (PAM_CONV_ERR); 1168 return (PAM_CONV_ERR);
1173} 1169}
1174 1170
diff --git a/cipher-aes.c b/cipher-aes.c
index 07ec7aa5d..8b1017272 100644
--- a/cipher-aes.c
+++ b/cipher-aes.c
@@ -120,7 +120,7 @@ ssh_rijndael_cleanup(EVP_CIPHER_CTX *ctx)
120 120
121 if ((c = EVP_CIPHER_CTX_get_app_data(ctx)) != NULL) { 121 if ((c = EVP_CIPHER_CTX_get_app_data(ctx)) != NULL) {
122 memset(c, 0, sizeof(*c)); 122 memset(c, 0, sizeof(*c));
123 xfree(c); 123 free(c);
124 EVP_CIPHER_CTX_set_app_data(ctx, NULL); 124 EVP_CIPHER_CTX_set_app_data(ctx, NULL);
125 } 125 }
126 return (1); 126 return (1);
diff --git a/cipher-ctr.c b/cipher-ctr.c
index d1fe69f57..ea0f9b3b7 100644
--- a/cipher-ctr.c
+++ b/cipher-ctr.c
@@ -104,7 +104,7 @@ ssh_aes_ctr_cleanup(EVP_CIPHER_CTX *ctx)
104 104
105 if ((c = EVP_CIPHER_CTX_get_app_data(ctx)) != NULL) { 105 if ((c = EVP_CIPHER_CTX_get_app_data(ctx)) != NULL) {
106 memset(c, 0, sizeof(*c)); 106 memset(c, 0, sizeof(*c));
107 xfree(c); 107 free(c);
108 EVP_CIPHER_CTX_set_app_data(ctx, NULL); 108 EVP_CIPHER_CTX_set_app_data(ctx, NULL);
109 } 109 }
110 return (1); 110 return (1);
diff --git a/groupaccess.c b/groupaccess.c
index 020deace7..1eab10b19 100644
--- a/groupaccess.c
+++ b/groupaccess.c
@@ -69,7 +69,7 @@ ga_init(const char *user, gid_t base)
69 for (i = 0, j = 0; i < ngroups; i++) 69 for (i = 0, j = 0; i < ngroups; i++)
70 if ((gr = getgrgid(groups_bygid[i])) != NULL) 70 if ((gr = getgrgid(groups_bygid[i])) != NULL)
71 groups_byname[j++] = xstrdup(gr->gr_name); 71 groups_byname[j++] = xstrdup(gr->gr_name);
72 xfree(groups_bygid); 72 free(groups_bygid);
73 return (ngroups = j); 73 return (ngroups = j);
74} 74}
75 75
@@ -125,6 +125,6 @@ ga_free(void)
125 for (i = 0; i < ngroups; i++) 125 for (i = 0; i < ngroups; i++)
126 free(groups_byname[i]); 126 free(groups_byname[i]);
127 ngroups = 0; 127 ngroups = 0;
128 xfree(groups_byname); 128 free(groups_byname);
129 } 129 }
130} 130}
diff --git a/loginrec.c b/loginrec.c
index f9662fa5c..59e8a44ee 100644
--- a/loginrec.c
+++ b/loginrec.c
@@ -347,7 +347,7 @@ logininfo *login_alloc_entry(pid_t pid, const char *username,
347void 347void
348login_free_entry(struct logininfo *li) 348login_free_entry(struct logininfo *li)
349{ 349{
350 xfree(li); 350 free(li);
351} 351}
352 352
353 353
diff --git a/monitor.c b/monitor.c
index 6acb20259..7286126f5 100644
--- a/monitor.c
+++ b/monitor.c
@@ -988,7 +988,7 @@ mm_answer_skeyrespond(int sock, Buffer *m)
988 skey_haskey(authctxt->pw->pw_name) == 0 && 988 skey_haskey(authctxt->pw->pw_name) == 0 &&
989 skey_passcheck(authctxt->pw->pw_name, response) != -1); 989 skey_passcheck(authctxt->pw->pw_name, response) != -1);
990 990
991 xfree(response); 991 free(response);
992 992
993 buffer_clear(m); 993 buffer_clear(m);
994 buffer_put_int(m, authok); 994 buffer_put_int(m, authok);
@@ -1073,19 +1073,17 @@ mm_answer_pam_query(int sock, Buffer *m)
1073 buffer_clear(m); 1073 buffer_clear(m);
1074 buffer_put_int(m, ret); 1074 buffer_put_int(m, ret);
1075 buffer_put_cstring(m, name); 1075 buffer_put_cstring(m, name);
1076 xfree(name); 1076 free(name);
1077 buffer_put_cstring(m, info); 1077 buffer_put_cstring(m, info);
1078 xfree(info); 1078 free(info);
1079 buffer_put_int(m, num); 1079 buffer_put_int(m, num);
1080 for (i = 0; i < num; ++i) { 1080 for (i = 0; i < num; ++i) {
1081 buffer_put_cstring(m, prompts[i]); 1081 buffer_put_cstring(m, prompts[i]);
1082 xfree(prompts[i]); 1082 free(prompts[i]);
1083 buffer_put_int(m, echo_on[i]); 1083 buffer_put_int(m, echo_on[i]);
1084 } 1084 }
1085 if (prompts != NULL) 1085 free(prompts);
1086 xfree(prompts); 1086 free(echo_on);
1087 if (echo_on != NULL)
1088 xfree(echo_on);
1089 auth_method = "keyboard-interactive"; 1087 auth_method = "keyboard-interactive";
1090 auth_submethod = "pam"; 1088 auth_submethod = "pam";
1091 mm_request_send(sock, MONITOR_ANS_PAM_QUERY, m); 1089 mm_request_send(sock, MONITOR_ANS_PAM_QUERY, m);
@@ -1108,8 +1106,8 @@ mm_answer_pam_respond(int sock, Buffer *m)
1108 resp[i] = buffer_get_string(m, NULL); 1106 resp[i] = buffer_get_string(m, NULL);
1109 ret = (sshpam_device.respond)(sshpam_ctxt, num, resp); 1107 ret = (sshpam_device.respond)(sshpam_ctxt, num, resp);
1110 for (i = 0; i < num; ++i) 1108 for (i = 0; i < num; ++i)
1111 xfree(resp[i]); 1109 free(resp[i]);
1112 xfree(resp); 1110 free(resp);
1113 } else { 1111 } else {
1114 ret = (sshpam_device.respond)(sshpam_ctxt, num, NULL); 1112 ret = (sshpam_device.respond)(sshpam_ctxt, num, NULL);
1115 } 1113 }
@@ -1764,7 +1762,7 @@ mm_answer_audit_command(int socket, Buffer *m)
1764 cmd = buffer_get_string(m, &len); 1762 cmd = buffer_get_string(m, &len);
1765 /* sanity check command, if so how? */ 1763 /* sanity check command, if so how? */
1766 audit_run_command(cmd); 1764 audit_run_command(cmd);
1767 xfree(cmd); 1765 free(cmd);
1768 return (0); 1766 return (0);
1769} 1767}
1770#endif /* SSH_AUDIT_EVENTS */ 1768#endif /* SSH_AUDIT_EVENTS */
diff --git a/monitor_wrap.c b/monitor_wrap.c
index b1870fcba..88ff68330 100644
--- a/monitor_wrap.c
+++ b/monitor_wrap.c
@@ -805,7 +805,7 @@ mm_do_pam_account(void)
805 ret = buffer_get_int(&m); 805 ret = buffer_get_int(&m);
806 msg = buffer_get_string(&m, NULL); 806 msg = buffer_get_string(&m, NULL);
807 buffer_append(&loginmsg, msg, strlen(msg)); 807 buffer_append(&loginmsg, msg, strlen(msg));
808 xfree(msg); 808 free(msg);
809 809
810 buffer_free(&m); 810 buffer_free(&m);
811 811
@@ -1035,7 +1035,7 @@ mm_skey_query(void *ctx, char **name, char **infotxt,
1035 mm_chall_setup(name, infotxt, numprompts, prompts, echo_on); 1035 mm_chall_setup(name, infotxt, numprompts, prompts, echo_on);
1036 1036
1037 xasprintf(*prompts, "%s%s", challenge, SKEY_PROMPT); 1037 xasprintf(*prompts, "%s%s", challenge, SKEY_PROMPT);
1038 xfree(challenge); 1038 free(challenge);
1039 1039
1040 return (0); 1040 return (0);
1041} 1041}
diff --git a/openbsd-compat/bsd-cygwin_util.c b/openbsd-compat/bsd-cygwin_util.c
index d3d2d913a..267e77a11 100644
--- a/openbsd-compat/bsd-cygwin_util.c
+++ b/openbsd-compat/bsd-cygwin_util.c
@@ -97,7 +97,7 @@ fetch_windows_environment(void)
97void 97void
98free_windows_environment(char **p) 98free_windows_environment(char **p)
99{ 99{
100 xfree(p); 100 free(p);
101} 101}
102 102
103#endif /* HAVE_CYGWIN */ 103#endif /* HAVE_CYGWIN */
diff --git a/openbsd-compat/getrrsetbyname-ldns.c b/openbsd-compat/getrrsetbyname-ldns.c
index 19666346b..343720f10 100644
--- a/openbsd-compat/getrrsetbyname-ldns.c
+++ b/openbsd-compat/getrrsetbyname-ldns.c
@@ -58,7 +58,6 @@
58 58
59#define malloc(x) (xmalloc(x)) 59#define malloc(x) (xmalloc(x))
60#define calloc(x, y) (xcalloc((x),(y))) 60#define calloc(x, y) (xcalloc((x),(y)))
61#define free(x) (xfree(x))
62 61
63int 62int
64getrrsetbyname(const char *hostname, unsigned int rdclass, 63getrrsetbyname(const char *hostname, unsigned int rdclass,
diff --git a/openbsd-compat/port-aix.c b/openbsd-compat/port-aix.c
index 0bdefbf6d..8da367d48 100644
--- a/openbsd-compat/port-aix.c
+++ b/openbsd-compat/port-aix.c
@@ -86,7 +86,7 @@ aix_usrinfo(struct passwd *pw)
86 fatal("Couldn't set usrinfo: %s", strerror(errno)); 86 fatal("Couldn't set usrinfo: %s", strerror(errno));
87 debug3("AIX/UsrInfo: set len %d", i); 87 debug3("AIX/UsrInfo: set len %d", i);
88 88
89 xfree(cp); 89 free(cp);
90} 90}
91 91
92# ifdef WITH_AIXAUTHENTICATE 92# ifdef WITH_AIXAUTHENTICATE
@@ -215,16 +215,14 @@ sys_auth_passwd(Authctxt *ctxt, const char *password)
215 default: /* user can't change(2) or other error (-1) */ 215 default: /* user can't change(2) or other error (-1) */
216 logit("Password can't be changed for user %s: %.100s", 216 logit("Password can't be changed for user %s: %.100s",
217 name, msg); 217 name, msg);
218 if (msg) 218 free(msg);
219 xfree(msg);
220 authsuccess = 0; 219 authsuccess = 0;
221 } 220 }
222 221
223 aix_restoreauthdb(); 222 aix_restoreauthdb();
224 } 223 }
225 224
226 if (authmsg != NULL) 225 free(authmsg);
227 xfree(authmsg);
228 226
229 return authsuccess; 227 return authsuccess;
230} 228}
@@ -269,7 +267,7 @@ sys_auth_allowed_user(struct passwd *pw, Buffer *loginmsg)
269 267
270 if (!permitted) 268 if (!permitted)
271 logit("Login restricted for %s: %.100s", pw->pw_name, msg); 269 logit("Login restricted for %s: %.100s", pw->pw_name, msg);
272 xfree(msg); 270 free(msg);
273 return permitted; 271 return permitted;
274} 272}
275 273
diff --git a/openbsd-compat/port-linux.c b/openbsd-compat/port-linux.c
index aba75387c..4637a7a3e 100644
--- a/openbsd-compat/port-linux.c
+++ b/openbsd-compat/port-linux.c
@@ -1,4 +1,4 @@
1/* $Id: port-linux.c,v 1.17 2012/03/08 23:25:18 djm Exp $ */ 1/* $Id: port-linux.c,v 1.18 2013/06/01 22:07:32 dtucker Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2005 Daniel Walsh <dwalsh@redhat.com> 4 * Copyright (c) 2005 Daniel Walsh <dwalsh@redhat.com>
@@ -96,10 +96,8 @@ ssh_selinux_getctxbyname(char *pwname)
96 } 96 }
97 97
98#ifdef HAVE_GETSEUSERBYNAME 98#ifdef HAVE_GETSEUSERBYNAME
99 if (sename != NULL) 99 free(sename);
100 xfree(sename); 100 free(lvl);
101 if (lvl != NULL)
102 xfree(lvl);
103#endif 101#endif
104 102
105 return sc; 103 return sc;
@@ -217,8 +215,8 @@ ssh_selinux_change_context(const char *newname)
217 if (setcon(newctx) < 0) 215 if (setcon(newctx) < 0)
218 switchlog("%s: setcon %s from %s failed with %s", __func__, 216 switchlog("%s: setcon %s from %s failed with %s", __func__,
219 newctx, oldctx, strerror(errno)); 217 newctx, oldctx, strerror(errno));
220 xfree(oldctx); 218 free(oldctx);
221 xfree(newctx); 219 free(newctx);
222} 220}
223 221
224void 222void
diff --git a/session.c b/session.c
index f47cc1788..1424825ca 100644
--- a/session.c
+++ b/session.c
@@ -1092,8 +1092,8 @@ read_etc_default_login(char ***env, u_int *envsize, uid_t uid)
1092 umask((mode_t)mask); 1092 umask((mode_t)mask);
1093 1093
1094 for (i = 0; tmpenv[i] != NULL; i++) 1094 for (i = 0; tmpenv[i] != NULL; i++)
1095 xfree(tmpenv[i]); 1095 free(tmpenv[i]);
1096 xfree(tmpenv); 1096 free(tmpenv);
1097} 1097}
1098#endif /* HAVE_ETC_DEFAULT_LOGIN */ 1098#endif /* HAVE_ETC_DEFAULT_LOGIN */
1099 1099
@@ -1109,7 +1109,7 @@ copy_environment(char **source, char ***env, u_int *envsize)
1109 for(i = 0; source[i] != NULL; i++) { 1109 for(i = 0; source[i] != NULL; i++) {
1110 var_name = xstrdup(source[i]); 1110 var_name = xstrdup(source[i]);
1111 if ((var_val = strstr(var_name, "=")) == NULL) { 1111 if ((var_val = strstr(var_name, "=")) == NULL) {
1112 xfree(var_name); 1112 free(var_name);
1113 continue; 1113 continue;
1114 } 1114 }
1115 *var_val++ = '\0'; 1115 *var_val++ = '\0';
@@ -1117,7 +1117,7 @@ copy_environment(char **source, char ***env, u_int *envsize)
1117 debug3("Copy environment: %s=%s", var_name, var_val); 1117 debug3("Copy environment: %s=%s", var_name, var_val);
1118 child_set_env(env, envsize, var_name, var_val); 1118 child_set_env(env, envsize, var_name, var_val);
1119 1119
1120 xfree(var_name); 1120 free(var_name);
1121 } 1121 }
1122} 1122}
1123 1123
diff --git a/sshd.c b/sshd.c
index 069e95ff9..c0ba420a3 100644
--- a/sshd.c
+++ b/sshd.c
@@ -1616,7 +1616,7 @@ main(int ac, char **av)
1616 } else { 1616 } else {
1617 memset(privsep_pw->pw_passwd, 0, strlen(privsep_pw->pw_passwd)); 1617 memset(privsep_pw->pw_passwd, 0, strlen(privsep_pw->pw_passwd));
1618 privsep_pw = pwcopy(privsep_pw); 1618 privsep_pw = pwcopy(privsep_pw);
1619 xfree(privsep_pw->pw_passwd); 1619 free(privsep_pw->pw_passwd);
1620 privsep_pw->pw_passwd = xstrdup("*"); 1620 privsep_pw->pw_passwd = xstrdup("*");
1621 } 1621 }
1622 endpwent(); 1622 endpwent();
diff --git a/sshlogin.c b/sshlogin.c
index 54629f747..2688d8d7b 100644
--- a/sshlogin.c
+++ b/sshlogin.c
@@ -97,7 +97,7 @@ store_lastlog_message(const char *user, uid_t uid)
97 time_string = sys_auth_get_lastlogin_msg(user, uid); 97 time_string = sys_auth_get_lastlogin_msg(user, uid);
98 if (time_string != NULL) { 98 if (time_string != NULL) {
99 buffer_append(&loginmsg, time_string, strlen(time_string)); 99 buffer_append(&loginmsg, time_string, strlen(time_string));
100 xfree(time_string); 100 free(time_string);
101 } 101 }
102# else 102# else
103 last_login_time = get_last_login_time(uid, user, hostname, 103 last_login_time = get_last_login_time(uid, user, hostname,
diff --git a/uidswap.c b/uidswap.c
index cdd7309e3..26d17f93a 100644
--- a/uidswap.c
+++ b/uidswap.c
@@ -90,8 +90,7 @@ temporarily_use_uid(struct passwd *pw)
90 if (getgroups(saved_egroupslen, saved_egroups) < 0) 90 if (getgroups(saved_egroupslen, saved_egroups) < 0)
91 fatal("getgroups: %.100s", strerror(errno)); 91 fatal("getgroups: %.100s", strerror(errno));
92 } else { /* saved_egroupslen == 0 */ 92 } else { /* saved_egroupslen == 0 */
93 if (saved_egroups != NULL) 93 free(saved_egroups);
94 xfree(saved_egroups);
95 } 94 }
96 95
97 /* set and save the user's groups */ 96 /* set and save the user's groups */
@@ -109,8 +108,7 @@ temporarily_use_uid(struct passwd *pw)
109 if (getgroups(user_groupslen, user_groups) < 0) 108 if (getgroups(user_groupslen, user_groups) < 0)
110 fatal("getgroups: %.100s", strerror(errno)); 109 fatal("getgroups: %.100s", strerror(errno));
111 } else { /* user_groupslen == 0 */ 110 } else { /* user_groupslen == 0 */
112 if (user_groups) 111 free(user_groups);
113 xfree(user_groups);
114 } 112 }
115 } 113 }
116 /* Set the effective uid to the given (unprivileged) uid. */ 114 /* Set the effective uid to the given (unprivileged) uid. */