Numerous improvements to NFS ACL/ACE dissection. For a complete list see
comment #11 of the bug.
From me:
- fix an infinite loop caught by fuzzing
- fix an out-of-bounds memory access caught by valgrind
- add missing {0,NULL} terminator to value_string array
svn path=/trunk/; revision=49074
* "dissect_nfs4_attribute()" was eliminated because the values dissection
portion of that routine was identical to the "dissect_nfs_attributes()"
routine. The code in "dissect_nfs4_bitmap4()" and
"dissect_nfs4_attrlist4()" was also similar so those routines
were also eliminated and their code incorporated in dissect_nfs_fattr4s().
These measures have reduced the size of 'packet-nfs.c' by almost 400 lines.
* Attributes were relabeled according to RFC 5661 (NFS4v1).
o “mand_attr” (REQUIRED attribute) header was changed to "reqd_attr”.
o “recc_attr” (RECOMMENDED attributes) header was changed to “reco_attr”
because "recommended" only has one ‘c’. =)
* In order to be able to list the attribute names horizontally in the
"Attr mask[x]" header (e.g., "Attr mask[0]: 0x0010111a (TYPE, CHANGE, SIZE,
FSID, ACL, FILEID)", “FATTR4_” was removed from the attribute names
(e.g., “FATTR4_TYPE (1)” is now “TYPE (1)”. Note that RFC 5661 does not
define them with a “FATTR4” prefix.
* In GETATTR responses, the “resok4” and “obj_attributes” subtrees were
eliminated because they are neither actual fields nor serve any practical
purpose.
* The READDIR "Directory Listing" subtree was reformatted. "Filename" was
changed to "Entry" because entries can also be directories.
"Value Follows", "cookie", and "Attr mask[n]" were moved within each entry.
If an Entry header is left-clicked all the fields of that entry are
highlighted in the Hex pane. If it is right-clicked the 'nfs.name'
field (filter) can be obtained. Finally, the "attr_vals:<DATA>" (text)
subtree was eliminated because it appears to serve no useful purpose and
clutters the tree.
svn path=/trunk/; revision=48966
Major NFS dissector cleanup. Consistent naming, spacing, line wrapping,
variable initialization, ...
For full details see comment #18 of the bug.
svn path=/trunk/; revision=48934
what these are). It gets freed slightly before we need to access it in order to
correctly free other glib memory.
Discovered accidentally while valgrinding the capture from
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8584
svn path=/trunk/; revision=48870
Add ACE4_INHERITED_ACE flag and NFS4ERR_DELEG_REVOKED error code.
Replace NFS4ERR_NODEV error code by NFS4ERR_DQUOT error code.
See RFC 5661 for details.
svn path=/trunk/; revision=48825
Effectively inline the only remain call (and replace a static buffer with ep
memory). Much of the NFS dissector needs to be converted to use named fields
at which point this code can go away, but that's a much bigger job.
Also, add modelines to packet-nfs.c and mark some internal value_string
functions as WS_DLL_LOCAL.
svn path=/trunk/; revision=48635
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
sizeof.
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
strtol() and strtoul().
Change some data types to avoid those implicit conversion warnings.
When assigning a constant to a float, make sure the constant isn't a
double, by appending "f" to the constant.
Constify a bunch of variables, parameters, and return values to
eliminate warnings due to strings being given const qualifiers. Cast
away those warnings in some cases where an API we don't control forces
us to do so.
Enable a bunch of additional warnings by default. Note why at least
some of the other warnings aren't enabled.
randpkt.c and text2pcap.c are used to build programs, so they don't need
to be in EXTRA_DIST.
If the user specifies --enable-warnings-as-errors, add -Werror *even if
the user specified --enable-extra-gcc-flags; assume they know what
they're doing and are willing to have the compile fail due to the extra
GCC warnings being treated as errors.
svn path=/trunk/; revision=46748
Crash due to a g_snprintf() incorrect (too large) "max number of bytes" parameter.
Note that g_snprintf() apparently writes to (initializes ?) bytes beyond the
actual string written.
Fixes Bug #7948: (To be confirmed by the user)
See: https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7498
svn path=/trunk/; revision=44111
offset returned from dissect_nfs_open_claim4, dissect_nfs_openflag4 were different
when we were building tree and where we didn't.
Fix other similar cases.
svn path=/trunk/; revision=43576
Followup to r42283: the loop which allocates operation summaries may not run
to completion, so don't try to free all the operation summaries.
svn path=/trunk/; revision=42303
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7209 :
Followup to r42283: the loop which allocates operation summaries may not run
to completion, so don't try to free all the operation summaries.
svn path=/trunk/; revision=42302
While developing SP4_MACH_CRED support for the linux nfs client, I noticed that
wireshark was displaying these bitmasks incorrectly (as fattrs instead of NFS
operations).
I also noticed that BACKCHANNEL_CTL (a required value in the mask for
SP4_MACH_CRED) wasn't in names_nfsv4_operation[], so I added it and verified
that we're not missing any other ops.
svn path=/trunk/; revision=41851
Both deviceid4 and sessionid4 are currently decoded as rpc_opaque_data - this
means their values are never displayed in the "Packet Detail" section and to
see them you have to select the name in the "Packet Detail" section and look at
the byte range in the "Packet Bytes" section.
The attached patch (against today's SVN) adds dissectors for both so these
values are displayed in the "Packet Detail" section.
svn path=/trunk/; revision=41417