check return value of base64_encode

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4119 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1997-12-05 02:36:03 +00:00
parent 6f6a22910b
commit 057ac0c276
4 changed files with 29 additions and 9 deletions

View File

@@ -121,7 +121,11 @@ kauth(int argc, char **argv)
memset(key, 0, sizeof(key));
memset(schedule, 0, sizeof(schedule));
memset(passwd, 0, sizeof(passwd));
base64_encode(tktcopy.dat, tktcopy.length, &p);
if(base64_encode(tktcopy.dat, tktcopy.length, &p) < 0) {
printf("Out of memory base64-encoding.\n");
code = -1;
return;
}
memset (tktcopy.dat, 0, tktcopy.length);
ret = command("SITE KAUTH %s %s", name, p);
free(p);

View File

@@ -447,7 +447,11 @@ do_klogin(char *host)
return ret;
}
base64_encode(krb4_adat.dat, krb4_adat.length, &p);
if(base64_encode(krb4_adat.dat, krb4_adat.length, &p) < 0) {
printf("Out of memory base64-encoding.\n");
verbose = old_verbose;
return -1;
}
ret = command("ADAT %s", p);
free(p);
@@ -502,7 +506,8 @@ krb4_quit(void)
data_prot = 0;
}
int krb4_write_enc(FILE *F, char *fmt, va_list ap)
int
krb4_write_enc(FILE *F, char *fmt, va_list ap)
{
int len;
char *p;
@@ -512,7 +517,9 @@ int krb4_write_enc(FILE *F, char *fmt, va_list ap)
vsnprintf(buf, sizeof(buf), fmt, ap);
len = krb_mk_priv(buf, enc, strlen(buf), schedule, &key,
&myctladdr, &hisctladdr);
base64_encode(enc, len, &p);
if(base64_encode(enc, len, &p) < 0) {
return -1;
}
fprintf(F, "ENC %s", p);
free (p);

View File

@@ -231,7 +231,10 @@ kauth(char *principal, char *ticket)
reply(500, "Kerberos error: %s.", krb_get_err_text(ret));
return;
}
base64_encode(cip.dat, cip.length, &p);
if(base64_encode(cip.dat, cip.length, &p) < 0) {
reply(500, "Out of memory while base64-encoding.");
return;
}
reply(300, "P=%s T=%s", krb_unparse_name(&pr), p);
free(p);
memset(&cip, 0, sizeof(cip));

View File

@@ -122,7 +122,10 @@ int krb4_adat(char *auth)
reply(535, "Error creating reply: %s.", strerror(errno));
return -1;
}
base64_encode(msg, len, &p);
if(base64_encode(msg, len, &p) < 0) {
reply(535, "Out of memory base64-encoding.");
return -1;
}
reply(235, "ADAT=%s", p);
auth_complete = 1;
free(p);
@@ -364,9 +367,12 @@ krb4_vprintf(const char *fmt, va_list ap)
len = 0; /* XXX */
code = 631;
}
base64_encode(enc, len, &p);
if(base64_encode(enc, len, &p) < 0) {
; /* XXX */
} else {
fprintf(stdout, "%d %s\r\n", code, p);
free(enc);
free(p);
}
free(enc);
return 0;
}