~ubuntu-branches/ubuntu/maverick/krb5/maverick

« back to all changes in this revision

Viewing changes to src/clients/kpasswd/kpasswd.c

  • Committer: Bazaar Package Importer
  • Author(s): Sam Hartman, Russ Allbery, Sam Hartman
  • Date: 2008-08-21 10:41:41 UTC
  • mfrom: (11.1.15 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080821104141-a0f9c4o4cpo8xd0o
Tags: 1.6.dfsg.4~beta1-4
[ Russ Allbery ]
* Translation updates:
  - Swedish, thanks Martin Bagge.  (Closes: #487669, #491774)
  - Italian, thanks Luca Monducci.  (Closes: #493962)

[ Sam Hartman ]
* Translation Updates:
    - Dutch, Thanks Vincent Zweije, Closes: #495733

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#include <stdio.h>
2
2
#include <sys/types.h>
 
3
#include "autoconf.h"
3
4
 
4
5
#ifndef _WIN32
5
6
#include <unistd.h>
48
49
   krb5_principal princ;
49
50
   char *pname;
50
51
   krb5_ccache ccache;
51
 
   krb5_get_init_creds_opt opts;
 
52
   krb5_get_init_creds_opt *opts = NULL;
52
53
   krb5_creds creds;
53
54
 
54
55
   char pw[1024];
101
102
       get_name_from_passwd_file(argv[0], context, &princ);
102
103
   }
103
104
 
104
 
   krb5_get_init_creds_opt_init(&opts);
105
 
   krb5_get_init_creds_opt_set_tkt_life(&opts, 5*60);
106
 
   krb5_get_init_creds_opt_set_renew_life(&opts, 0);
107
 
   krb5_get_init_creds_opt_set_forwardable(&opts, 0);
108
 
   krb5_get_init_creds_opt_set_proxiable(&opts, 0);
 
105
   if ((ret = krb5_get_init_creds_opt_alloc(context, &opts))) {
 
106
         com_err(argv[0], ret, "allocating krb5_get_init_creds_opt");
 
107
         exit(1);
 
108
   }
 
109
   krb5_get_init_creds_opt_set_tkt_life(opts, 5*60);
 
110
   krb5_get_init_creds_opt_set_renew_life(opts, 0);
 
111
   krb5_get_init_creds_opt_set_forwardable(opts, 0);
 
112
   krb5_get_init_creds_opt_set_proxiable(opts, 0);
109
113
 
110
114
   if ((ret = krb5_get_init_creds_password(context, &creds, princ, NULL,
111
115
                                           krb5_prompter_posix, NULL, 
112
 
                                           0, "kadmin/changepw", &opts))) {
 
116
                                           0, "kadmin/changepw", opts))) {
113
117
      if (ret == KRB5KRB_AP_ERR_BAD_INTEGRITY)
114
118
         com_err(argv[0], 0,
115
119
                 "Password incorrect while getting initial ticket");
116
120
      else
117
121
         com_err(argv[0], ret, "getting initial ticket");
 
122
      krb5_get_init_creds_opt_free(context, opts);
118
123
      exit(1);
119
124
   }
120
125
 
121
126
   pwlen = sizeof(pw);
122
127
   if ((ret = krb5_read_password(context, P1, P2, pw, &pwlen))) {
123
128
      com_err(argv[0], ret, "while reading password");
 
129
      krb5_get_init_creds_opt_free(context, opts);
124
130
      exit(1);
125
131
   }
126
132
 
128
134
                                   &result_code, &result_code_string,
129
135
                                   &result_string))) {
130
136
      com_err(argv[0], ret, "changing password");
 
137
      krb5_get_init_creds_opt_free(context, opts);
131
138
      exit(1);
132
139
   }
133
140
 
137
144
             result_string.length?": ":"",
138
145
             (int) result_string.length,
139
146
             result_string.data ? result_string.data : "");
 
147
      krb5_get_init_creds_opt_free(context, opts);
140
148
      exit(2);
141
149
   }
142
150
 
144
152
       free(result_string.data);
145
153
   if (result_code_string.data != NULL)
146
154
       free(result_code_string.data);
 
155
   krb5_get_init_creds_opt_free(context, opts);
147
156
 
148
157
   printf("Password changed.\n");
149
158
   exit(0);