git.samba.org
/
amitay
/
samba.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
a75ca8d
)
sess_crypt_blob can only crypt blobs whose size divides by 8
author
Isaac Boukris
<iboukris@gmail.com>
Thu, 21 Nov 2019 14:13:19 +0000
(15:13 +0100)
committer
Andrew Bartlett
<abartlet@samba.org>
Tue, 10 Dec 2019 00:30:31 +0000
(
00:30
+0000)
Signed-off-by: Isaac Boukris <iboukris@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
libcli/auth/session.c
patch
|
blob
|
history
diff --git
a/libcli/auth/session.c
b/libcli/auth/session.c
index 4af70d361af781bbeac9bb8b5b34ac21c3313854..43ce9d54fdc1cfbd75ebaf3ef39aea9e3fff2f53 100644
(file)
--- a/
libcli/auth/session.c
+++ b/
libcli/auth/session.c
@@
-34,13
+34,16
@@
int sess_crypt_blob(DATA_BLOB *out, const DATA_BLOB *in, const DATA_BLOB *sessio
{
int i, k, rc;
+ if (in->length % 8 != 0) {
+ return GNUTLS_E_INVALID_REQUEST;
+ }
+
for (i=0,k=0;
i<in->length;
i += 8, k += 7) {
uint8_t bin[8], bout[8], key[7];
- memset(bin, 0, 8);
- memcpy(bin, &in->data[i], MIN(8, in->length-i));
+ memcpy(bin, &in->data[i], 8);
if (k + 7 > session_key->length) {
k = (session_key->length - k);
@@
-52,7
+55,7
@@
int sess_crypt_blob(DATA_BLOB *out, const DATA_BLOB *in, const DATA_BLOB *sessio
return rc;
}
- memcpy(&out->data[i], bout,
MIN(8, in->length-i)
);
+ memcpy(&out->data[i], bout,
8
);
}
return 0;
}