git.samba.org
/
samba.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
4795fd7
)
Some paranoia checks
author
Volker Lendecke
<vl@sernet.de>
Wed, 19 Dec 2007 15:48:18 +0000
(16:48 +0100)
committer
Volker Lendecke
<vl@samba.org>
Wed, 19 Dec 2007 15:55:30 +0000
(16:55 +0100)
source/libsmb/unexpected.c
patch
|
blob
|
history
diff --git
a/source/libsmb/unexpected.c
b/source/libsmb/unexpected.c
index 3ca0e89f99fe23f5b0b79e0e0879280721e1e504..0e4e03384ca2f1c0ee2aa354adaf0b335df03af1 100644
(file)
--- a/
source/libsmb/unexpected.c
+++ b/
source/libsmb/unexpected.c
@@
-83,6
+83,10
@@
static int traverse_fn(TDB_CONTEXT *ttdb, TDB_DATA kbuf, TDB_DATA dbuf, void *st
{
struct unexpected_key key;
+ if (kbuf.dsize != sizeof(key)) {
+ tdb_delete(ttdb, kbuf);
+ }
+
memcpy(&key, kbuf.dptr, sizeof(key));
if (lastt - key.timestamp > NMBD_UNEXPECTED_TIMEOUT) {
@@
-122,6
+126,10
@@
static int traverse_match(TDB_CONTEXT *ttdb, TDB_DATA kbuf, TDB_DATA dbuf, void
struct unexpected_key key;
struct packet_struct *p;
+ if (kbuf.dsize != sizeof(key)) {
+ return 0;
+ }
+
memcpy(&key, kbuf.dptr, sizeof(key));
if (key.packet_type != match_type) return 0;