Deleted Added
full compact
changepw.c (102644) changepw.c (103423)
1/*
2 * Copyright (c) 1997 - 2002 Kungliga Tekniska H�gskolan
3 * (Royal Institute of Technology, Stockholm, Sweden).
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 19 unchanged lines hidden (view full) ---

28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#include <krb5_locl.h>
35
1/*
2 * Copyright (c) 1997 - 2002 Kungliga Tekniska H�gskolan
3 * (Royal Institute of Technology, Stockholm, Sweden).
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 19 unchanged lines hidden (view full) ---

28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#include <krb5_locl.h>
35
36RCSID("$Id: changepw.c,v 1.35 2002/06/06 13:33:13 joda Exp $");
36RCSID("$Id: changepw.c,v 1.37 2002/09/03 16:14:34 nectar Exp $");
37
38static krb5_error_code
39send_request (krb5_context context,
40 krb5_auth_context *auth_context,
41 krb5_creds *creds,
42 int sock,
43 char *passwd,
44 const char *host)

--- 7 unchanged lines hidden (view full) ---

52 u_char *p;
53 struct iovec iov[3];
54 struct msghdr msghdr;
55
56 krb5_data_zero (&ap_req_data);
57
58 ret = krb5_mk_req_extended (context,
59 auth_context,
37
38static krb5_error_code
39send_request (krb5_context context,
40 krb5_auth_context *auth_context,
41 krb5_creds *creds,
42 int sock,
43 char *passwd,
44 const char *host)

--- 7 unchanged lines hidden (view full) ---

52 u_char *p;
53 struct iovec iov[3];
54 struct msghdr msghdr;
55
56 krb5_data_zero (&ap_req_data);
57
58 ret = krb5_mk_req_extended (context,
59 auth_context,
60 AP_OPTS_MUTUAL_REQUIRED,
60 AP_OPTS_MUTUAL_REQUIRED | AP_OPTS_USE_SUBKEY,
61 NULL, /* in_data */
62 creds,
63 &ap_req_data);
64 if (ret)
65 return ret;
66
67 passwd_data.data = passwd;
68 passwd_data.length = strlen(passwd);

--- 70 unchanged lines hidden (view full) ---

139 krb5_data *result_code_string,
140 krb5_data *result_string,
141 const char *host)
142{
143 krb5_error_code ret;
144 u_char reply[BUFSIZ];
145 size_t len;
146 u_int16_t pkt_len, pkt_ver;
61 NULL, /* in_data */
62 creds,
63 &ap_req_data);
64 if (ret)
65 return ret;
66
67 passwd_data.data = passwd;
68 passwd_data.length = strlen(passwd);

--- 70 unchanged lines hidden (view full) ---

139 krb5_data *result_code_string,
140 krb5_data *result_string,
141 const char *host)
142{
143 krb5_error_code ret;
144 u_char reply[BUFSIZ];
145 size_t len;
146 u_int16_t pkt_len, pkt_ver;
147 krb5_data ap_rep_data;
147 krb5_data ap_rep_data, priv_data;
148 int save_errno;
149
150 ret = recvfrom (sock, reply, sizeof(reply), 0, NULL, NULL);
151 if (ret < 0) {
152 save_errno = errno;
153 krb5_set_error_string(context, "recvfrom %s: %s",
154 host, strerror(save_errno));
155 return save_errno;

--- 12 unchanged lines hidden (view full) ---

168 str2data (result_string,
169 "client: wrong version number (%d)", pkt_ver);
170 *result_code = KRB5_KPASSWD_MALFORMED;
171 return 0;
172 }
173
174 ap_rep_data.data = reply + 6;
175 ap_rep_data.length = (reply[4] << 8) | (reply[5]);
148 int save_errno;
149
150 ret = recvfrom (sock, reply, sizeof(reply), 0, NULL, NULL);
151 if (ret < 0) {
152 save_errno = errno;
153 krb5_set_error_string(context, "recvfrom %s: %s",
154 host, strerror(save_errno));
155 return save_errno;

--- 12 unchanged lines hidden (view full) ---

168 str2data (result_string,
169 "client: wrong version number (%d)", pkt_ver);
170 *result_code = KRB5_KPASSWD_MALFORMED;
171 return 0;
172 }
173
174 ap_rep_data.data = reply + 6;
175 ap_rep_data.length = (reply[4] << 8) | (reply[5]);
176 priv_data.data = (u_char*)ap_rep_data.data + ap_rep_data.length;
177 priv_data.length = len - ap_rep_data.length - 6;
178 if ((u_char *)priv_data.data + priv_data.length >= reply + len)
179 return KRB5_KPASSWD_MALFORMED;
176
177 if (ap_rep_data.length) {
178 krb5_ap_rep_enc_part *ap_rep;
180
181 if (ap_rep_data.length) {
182 krb5_ap_rep_enc_part *ap_rep;
179 krb5_data priv_data;
180 u_char *p;
181
182 ret = krb5_rd_rep (context,
183 auth_context,
184 &ap_rep_data,
185 &ap_rep);
186 if (ret)
187 return ret;
188
189 krb5_free_ap_rep_enc_part (context, ap_rep);
190
183 u_char *p;
184
185 ret = krb5_rd_rep (context,
186 auth_context,
187 &ap_rep_data,
188 &ap_rep);
189 if (ret)
190 return ret;
191
192 krb5_free_ap_rep_enc_part (context, ap_rep);
193
191 priv_data.data = (u_char*)ap_rep_data.data + ap_rep_data.length;
192 priv_data.length = len - ap_rep_data.length - 6;
193
194 ret = krb5_rd_priv (context,
195 auth_context,
196 &priv_data,
197 result_code_string,
198 NULL);
199 if (ret) {
200 krb5_data_free (result_code_string);
201 return ret;

--- 185 unchanged lines hidden ---
194 ret = krb5_rd_priv (context,
195 auth_context,
196 &priv_data,
197 result_code_string,
198 NULL);
199 if (ret) {
200 krb5_data_free (result_code_string);
201 return ret;

--- 185 unchanged lines hidden ---