52 lines
1.4 KiB
Diff
52 lines
1.4 KiB
Diff
diff --git a/plugins/gssapi.c b/plugins/gssapi.c
|
|
index 5d900c5e..4688bb9a 100644
|
|
--- a/plugins/gssapi.c
|
|
+++ b/plugins/gssapi.c
|
|
@@ -1567,7 +1567,6 @@ int gssapiv2_server_plug_init(
|
|
{
|
|
#ifdef HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY
|
|
const char *keytab = NULL;
|
|
- char keytab_path[1024];
|
|
unsigned int rl;
|
|
#endif
|
|
|
|
@@ -1589,15 +1588,7 @@ int gssapiv2_server_plug_init(
|
|
return SASL_FAIL;
|
|
}
|
|
|
|
- if(strlen(keytab) > 1024) {
|
|
- utils->log(NULL, SASL_LOG_ERR,
|
|
- "path to keytab is > 1024 characters");
|
|
- return SASL_BUFOVER;
|
|
- }
|
|
-
|
|
- strncpy(keytab_path, keytab, 1024);
|
|
-
|
|
- gsskrb5_register_acceptor_identity(keytab_path);
|
|
+ gsskrb5_register_acceptor_identity(keytab);
|
|
}
|
|
#endif
|
|
|
|
diff --git a/plugins/ntlm.c b/plugins/ntlm.c
|
|
index aeb3ac34..8a7d9065 100644
|
|
--- a/plugins/ntlm.c
|
|
+++ b/plugins/ntlm.c
|
|
@@ -375,10 +375,15 @@ static unsigned char *P16_lm(unsigned char *P16, sasl_secret_t *passwd,
|
|
unsigned *buflen __attribute__((unused)),
|
|
int *result)
|
|
{
|
|
- char P14[14];
|
|
+ char P14[14] = { 0 };
|
|
+ int Plen;
|
|
unsigned char S8[] = { 0x4b, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25 };
|
|
|
|
- strncpy(P14, (const char *) passwd->data, sizeof(P14));
|
|
+ Plen = sizeof(P14);
|
|
+ if (passwd->len < Plen) {
|
|
+ Plen = passwd->len;
|
|
+ }
|
|
+ memcpy(P14, (const char *) passwd->data, Plen);
|
|
ucase(P14, sizeof(P14));
|
|
|
|
E(P16, (unsigned char *) P14, sizeof(P14), S8, sizeof(S8));
|