git.samba.org
/
kai
/
samba.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(from parent 1:
9ec4f91
)
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:57:48 +0000
(16:57 +0100)
source/libsmb/unexpected.c
patch
|
blob
|
history
diff --git
a/source/libsmb/unexpected.c
b/source/libsmb/unexpected.c
index 195668c44a8bfcd16cb3661329d0c988611eb400..5fbc33cdf572b81dec8cc6faf84640fbe296f05d 100644
(file)
--- a/
source/libsmb/unexpected.c
+++ b/
source/libsmb/unexpected.c
@@
-88,6
+88,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) {
@@
-136,6
+140,10
@@
static int traverse_match(TDB_CONTEXT *ttdb, TDB_DATA kbuf, TDB_DATA dbuf,
int port;
struct packet_struct *p;
+ if (kbuf.dsize != sizeof(key)) {
+ return 0;
+ }
+
memcpy(&key, kbuf.dptr, sizeof(key));
if (key.packet_type != state->match_type) return 0;