Commit Graph

94 Commits

Author SHA1 Message Date
Ronnie Sahlberg 5c2232dc22 replace a rotating buffer in smb with ep allocated memory
dont try dcerpc reassembly of fragments if we dont have the entire pdu

only call the heuristical dissectors once from smb/pipe as per guy(?)s comments about idempotence.
when doing reassembly, the dcerpc dissector is indeed not idempotent any more.



svn path=/trunk/; revision=19304
2006-09-23 13:21:54 +00:00
Jaap Keuter 18664a7803 From: Marco Strack
The smb dissector displays lock requests in the "Locking AndX Request" as a vector of locks. It opens a tree branch
"Locks" and appends the locks to this branch. Instead of adding "Lock" objects to this branch it added "Unlock"
objects. Everything else is fine.

svn path=/trunk/; revision=19271
2006-09-21 13:08:50 +00:00
Gerald Combs 7bded1f0ee Fix CID 209 (possible NULL dereference).
svn path=/trunk/; revision=18950
2006-08-18 20:18:38 +00:00
Ronnie Sahlberg 58396f47da add tracking of fid type to objects opened by NT CREATE so that we can dissect aces properly also for these fids
svn path=/trunk/; revision=18929
2006-08-16 19:38:39 +00:00
Ronnie Sahlberg b02d08fa76 use the same structure to pass the fid type information from nt transaction parameter to nt transaction data dissector for both ssd and qsd instead of two different ones
svn path=/trunk/; revision=18927
2006-08-16 10:35:04 +00:00
Ronnie Sahlberg d08c190fe0 track fid types between NT TRans QUERY_SECURITY_DESCRIPTOR and dissect the ACEs properly
svn path=/trunk/; revision=18926
2006-08-16 09:22:36 +00:00
Ronnie Sahlberg 80e1ff0ee8 add dissection of DIRECTORY specific bits of the accessmask for SET_SECURITY_DESCRIPTOR
svn path=/trunk/; revision=18925
2006-08-16 09:02:15 +00:00
Ronnie Sahlberg 3c6d1fcef8 add code to dissect FILE specific bits for the accessmask inside a security descriptor and have SET_SECURITY_DESCRIPTOR use it so that security descriptors for files held inside SET_SECURITY_DESCRIPTOR are decoded properly
svn path=/trunk/; revision=18924
2006-08-16 08:48:00 +00:00
Ronnie Sahlberg 0902016b42 add a type field for the fid tracking structure and initialize it to UNKNOWN
when files are opened using NTCreateAndX  and if we recognize the type   set the type field to either FILE, DIR or PIPE

This is useful to know when dissecting things like security descriptors since it tells us how to dissect the specific bits of the access mask.


Only do this for NTCreateAndX for now.   It is trivial to add similar tracking to some of the older   obsolete   calls used to open fids    but no clients ever use those old calls any more.





svn path=/trunk/; revision=18922
2006-08-16 08:00:46 +00:00
Ronnie Sahlberg 8ce8e719e0 rename some structures and defines from the se_tree to the emem_tree prefix
svn path=/trunk/; revision=18894
2006-08-14 08:29:29 +00:00
Ronnie Sahlberg 21b45abc1e add two missing CHECK_BYTE_COUNT
to not cause an exception for clearly malformed packets


will resolve "bug" 987   (which is NOT a bug)



svn path=/trunk/; revision=18762
2006-07-19 10:02:49 +00:00
Ronnie Sahlberg 75030295d1 add tracking of TID -> sharenames
reuse the recent structure for fid->filename mappings since the problemspace is virtually the same


(go to tired of trying to find the sharename in 10mpacket traces with 1000s of shares)



svn path=/trunk/; revision=18516
2006-06-19 09:44:15 +00:00
Ronnie Sahlberg 15c935b535 make fid->filename tracking work for files opened with NTCreateAndX
This needs to be done for all other Create/Open calls as well but would notmally just be 6 lines tyo add.

I rarely see older methods to open files   so others using older clients are encoraged to use these 6 lines to the other places where needed.




svn path=/trunk/; revision=18515
2006-06-19 07:41:09 +00:00
Ronnie Sahlberg 986085204d add infrastructure to make tracking of fid->filename easy to implement and use
svn path=/trunk/; revision=18514
2006-06-19 07:39:19 +00:00
Ronnie Sahlberg d76b58cbfb track smb FIDFs when tehy are opened and closed.
add an expansion to the fid that display which frame itr was opened in and when it was closed.



someone may want to add tracking of actual filenames here as well.   i am not sure i need that feature myself   so ...



svn path=/trunk/; revision=18512
2006-06-18 05:45:40 +00:00
Ronnie Sahlberg a5db166102 rename add_fid() to dissect_smb_fid() as a firsdt step towards adding tracking of filename/openedframe/closedframe tracking for smb fids
svn path=/trunk/; revision=18506
2006-06-18 01:58:34 +00:00
Ronnie Sahlberg feab79e328 change a whole bunch of ethereal into wireshark
svn path=/trunk/; revision=18196
2006-05-21 04:49:01 +00:00
Jaap Keuter b1c230fb59 From Mark C. Brown:
The code was incorrectly bounds checking AndXOffset.  AndXOffset is only
relevant when AndXCommand is not 0xFF.  This patch corrects erroneous
"Malformed packet" exceptions.

svn path=/trunk/; revision=18015
2006-04-26 22:53:00 +00:00
Ronnie Sahlberg baed8f0888 add dissection of
SMB/SetFileInfo level 1023
SMB2/SetInfo/FILE_INFO level 0x17

FILE_PIPE_INFO   infolevel


svn path=/trunk/; revision=17195
2006-02-07 08:48:51 +00:00
Ronnie Sahlberg f1e686af86 add dissection of a few more create options
svn path=/trunk/; revision=17179
2006-02-06 09:37:56 +00:00
Ronnie Sahlberg 8aca1c1c52 add dissection of two more NTCreateAndX bits :
open by file id 
and
backup intent



svn path=/trunk/; revision=16869
2005-12-21 08:48:59 +00:00
Ronnie Sahlberg 5b238763bf implement SMB_FILE_ALL_INFO properly once and for all
svn path=/trunk/; revision=16755
2005-12-11 22:29:39 +00:00
Ronnie Sahlberg 7e5f31b6a0 updates for FILE_OBJECTID_BUFFER and have smb call this (no more unknown bytes in smb for objectid)
svn path=/trunk/; revision=16682
2005-12-05 21:22:06 +00:00
Ronnie Sahlberg 55beaa37cf add endoffile infolevel
svn path=/trunk/; revision=16607
2005-11-26 21:59:48 +00:00
Ronnie Sahlberg f699f011fc more infolevels
svn path=/trunk/; revision=16606
2005-11-26 21:44:37 +00:00
Ronnie Sahlberg d149d98fc3 assume the four bytes after the fid in notify request is the completion mask
svn path=/trunk/; revision=16596
2005-11-26 00:34:22 +00:00
Ronnie Sahlberg 85cfb618f9 from metze and modified, fix for in offset/length for transaction request
svn path=/trunk/; revision=16589
2005-11-25 21:55:34 +00:00
Ronnie Sahlberg 704abdc0e5 add some more infolevels
svn path=/trunk/; revision=16585
2005-11-25 08:02:40 +00:00
Ronnie Sahlberg 261aade300 add dissection of the smb2 impersionationlevel field
svn path=/trunk/; revision=16581
2005-11-25 06:19:41 +00:00
Ronnie Sahlberg c76c376968 some info level updates
svn path=/trunk/; revision=16580
2005-11-25 06:04:11 +00:00
Ronnie Sahlberg cfc56af514 some info level updates
svn path=/trunk/; revision=16579
2005-11-25 05:41:00 +00:00
Ronnie Sahlberg e2ef8b1632 fix for bug 570, the domain name is present in sessionsetupandx replies even for wc==4
svn path=/trunk/; revision=16550
2005-11-19 10:27:16 +00:00
Ronnie Sahlberg 3f047721a3 dissect some more infolevels
svn path=/trunk/; revision=16543
2005-11-18 07:31:18 +00:00
Ronnie Sahlberg 3afd94f519 add dissection of more infolevels for smb2
svn path=/trunk/; revision=16539
2005-11-17 22:30:19 +00:00
Ronnie Sahlberg e5b6a6426b add dissection of fs_[objectid|full_size]_info
svn path=/trunk/; revision=16538
2005-11-17 14:22:11 +00:00
Ronnie Sahlberg 6ac4fe9a25 add dissection of fs quota info
svn path=/trunk/; revision=16537
2005-11-17 14:00:07 +00:00
Ronnie Sahlberg 1b809cfcd7 add full dissection of fs_[volume|size|device|atrtibute]_info
svn path=/trunk/; revision=16536
2005-11-17 13:43:22 +00:00
Ronnie Sahlberg 675d0862b5 add dissection of the security descriptor mask
svn path=/trunk/; revision=16535
2005-11-17 12:30:36 +00:00
Ronnie Sahlberg 7d0ed23854 from Laurent Constantin
updates to smb
A patch for packet-smb.c is attached:
 - it improves timeout decoding
 - it defines common NT transaction IOCTL functions
 - it corrects decoding of resume key in search queries
 - it defines a new function dissect_4_2_16_8_unsure() to replace
   dissect_4_2_16_8(). I'm unsure if it is correct. As said in
   comments, it works for me, but I find strange that nobody noticed
   dissect_4_2_16_8() was wrong. So, it is between "#if 0".
   Someone else should confirm dissect_4_2_16_8_unsure() works
   before activating it.



svn path=/trunk/; revision=16494
2005-11-12 21:56:02 +00:00
Ronnie Sahlberg 15f13b23a0 improve the dissection of Create and fill in most of the fields
svn path=/trunk/; revision=16490
2005-11-12 11:27:34 +00:00
Ronnie Sahlberg 8b68d91039 dissect more of Close request/response
svn path=/trunk/; revision=16487
2005-11-12 10:07:12 +00:00
Guy Harris 2a8e47b11a Don't ensure all the bytes of a security descriptor exist before calling
"dissect_nt_sec_desc()".  Add a Boolean argument to
"dissect_nt_sec_desc()" to indicate whether a length was passed to it
(so we don't treat -1 as a special value; we want to stop treating -1 as
a special length value, and, in fact, want to stop treating *any*
negative length values specially, so that we don't have to worry about
passing arbitrary 32-bit values from packets as lengths), and have
"dissect_nt_sec_desc()" initially create the protocol tree item for the
security descriptor with a length of "go to the end of the tvbuff", and
set the length once we're done dissecting it - and, if the length was
specified, check at *that* point, *after* we've dissected the security
descriptor, whether we have the entire security descriptor in the
tvbuff.

That means that we don't have to worry about overflows after
"dissect_nt_sec_desc()" returns - if the length was so large that we
would have gotten an overflow, we'd have thrown an exception in the
"tvb_ensure_bytes_exist()" call at the end of "dissect_nt_sec_desc()".

Do sanity checks on offsets within the security descriptor, so we know
the item referred to by the offset is after the fixed-length portion of
the descriptor.

svn path=/trunk/; revision=16113
2005-10-04 10:23:40 +00:00
Guy Harris 7aa4b4ffe1 Make "top_tree" static; nobody else uses it, and if they're both not
static, they collide with one another in builds on at least some
platforms.

svn path=/trunk/; revision=16049
2005-09-29 01:31:19 +00:00
Ulf Lamping 9a42ef9536 fix #480: Change defaults for all reassembling settings to ON
I've changed all settings I could find to TRUE. It might be reasonable to change some protocol settings back to FALSE, if reassembling fails very often.

svn path=/trunk/; revision=16048
2005-09-28 22:15:38 +00:00
Guy Harris ab2dca9114 Move some headers for stuff defined by a dissector into epan/dissectors
- and rename smb.h to packet-smb.h, as it's packet-smb.c's header file.

svn path=/trunk/; revision=15845
2005-09-17 00:31:15 +00:00
Guy Harris b7b80d94be Move a pile of protocol-related headers from the top-level source
directory to the epan directory.  Some of them should perhaps ultimately
be moved to epan/dissectors, if they pertain only to stuff exported by a
particular dissector.

Fix Gerald's e-mail address in files we're moving.

svn path=/trunk/; revision=15844
2005-09-17 00:02:31 +00:00
Gerald Combs a242f1926b In smb_trans_defragment(), throw an exception if we encounter a too-large
fragment size.  The limit is conservatively set at 65536 bytes.  It may
have to be increased.  Fixes bug 421.

Add an entry to the release notes.

svn path=/trunk/; revision=15789
2005-09-13 19:01:01 +00:00
Ulf Lamping 6f43fbb2f0 EVERYTHING IN THE BUILDBOT IS GOING TO BE RED!!! Sorry!
I've done more than a day to change the timestamp resolution from microseconds to nanoseconds. As I really don't want to loose those changes, I'm going to check in the changes I've done so far. Hopefully someone else will give me a helping hand with the things left ...

What's done: I've changed the timestamp resolution from usec to nsec in almost any place in the sources. I've changed parts of the implementation in nstime.s/.h and a lot of places elsewhere.

As I don't understand the editcap source (well, I'm maybe just too tired right now), hopefully someone else might be able to fix this soon.

Doing all those changes, we get native nanosecond timestamp resolution in Ethereal. After fixing all the remaining issues, I'll take a look how to display this in a convenient way...

As I've also changed the wiretap timestamp resolution from usec to nsec we might want to change the wiretap version number...

svn path=/trunk/; revision=15520
2005-08-24 21:31:56 +00:00
Ulf Lamping 925489be0b removed MSVC warnings:
packet-camel.c(6829) : warning C4101: 'version_str' : unreferenced local variable
packet-quakeworld.c(172) : warning C4090: 'return' : different 'const' qualifiers
packet-smb.c(10859) : warning C4101: 'target_name_len' : unreferenced local variable
packet-smb.c(10860) : warning C4101: 'fn_len' : unreferenced local variable
packet-smb.c(10858) : warning C4101: 'fn' : unreferenced local variable

svn path=/trunk/; revision=15474
2005-08-20 15:58:42 +00:00
Guy Harris e5c09b21aa Use get_timedelta() to get the difference between two times.
svn path=/trunk/; revision=15455
2005-08-20 02:15:02 +00:00