g_string_free(str, FALSE) frees the GString container but not the
underlying g_malloc()ed string; instead, it returns a pointer to the
g_malloc()ed string.
Fix those places that didn't already get the string pointer from
g_string_free() to do so rather than manually extracting the string
themselves.
And fix one place that didn't even need to use a string - it was just
scanning a C string without even modifying it.
Change-Id: Ibbf4872bf5b9935b9907f539b6edb1013f3053a5
Reviewed-on: https://code.wireshark.org/review/6532
Reviewed-by: Guy Harris <guy@alum.mit.edu>
For attributes, handle them the same way we handle duplicate vendors.
For TLVs, ignore duplicates; they shouldn't happen.
Change-Id: Ie968478c40a9b7848fa8ea25b144eda8656e5874
Reviewed-on: https://code.wireshark.org/review/5268
Reviewed-by: Guy Harris <guy@alum.mit.edu>
If, when adding a new vendor, we already find a vendor with the given
ID, don't bother adding it to the vendors-by-ID table with the same ID,
and, if and only if the vendor name has changed, remove it from the
vendors-by-name table, free the old name, replace it with the new name,
and, add it back to the vendors-by-name table with the new name.
Bug: 10666
Change-Id: I43ebcb57c742563157c71b01ebc0b35797a408e1
Reviewed-on: https://code.wireshark.org/review/5265
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Change-Id: I487a3451344796447f0d5621b993cc89c29e93b5
Reviewed-on: https://code.wireshark.org/review/2383
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
input() routine and thus don't need to have it generated - and as it
produces warnings of a routine defined but not used, we don't want to
have it generated.
Squelch a casting-const-away warning.
svn path=/trunk/; revision=47613
state of errno. Don't treat it as a fatal parse error because it isn't,
so we keep parsing the rest of the dictionaries even if one is missing.
svn path=/trunk/; revision=45361
- If it's something as simple as a missing $INCLUDE then we probably still want
whatever we could parse
- We weren't doing it consistently anyways
- There were a whole bunch of places where we were using it regardless of
whether or not the parse failed, leading to read-after-free errors.
svn path=/trunk/; revision=45360
replaced in the key-set of the hash table. This doesn't really provide proper
behaviour, it just stops us from accessing freed memory.
Also, add modelines.
svn path=/trunk/; revision=45354
proto_tree_add_item() calls.
For RADIUS, this means that, for string attributes that are encrypted,
we need separate fields for the encrypted and decrypted versions, the
former of which is an FT_BYTES (as its value is *NOT* a text string!)
and the latter of which is FT_STRING.
While we're at it:
make some routines static that don't need to be exported;
"encrypt=" takes a value between 1 and 3 - get the value from
the dictionary and store it, and only do User-Password-style
decryption for encrypt=1 attributes;
rename "hf64" to "hf_alt", as it's a general "alternate field",
used for 64-bit values for integral attributess, IPv6 addresses
for "combo IP" attributes, and encrypted values for string
fields;
give the URL for the FreeRADIUS dictionary file format man page.
svn path=/trunk/; revision=42530
In order to compile the whole project with -DG_DISABLE_DEPRECATED
the mate plugin needs to replace its usage of GMemChunk.
All other places should be clean.
svn path=/trunk/; revision=38392
The actual cause of an OSX compile problem: The text [^[:blank:]] in a comment.
SVN #37408 was reverted because a period (or most other characters)
in a RE character class don't need to be escaped.
This patch adds some replacement text in the spot in the comment
originally occupied by the text [^[:blank:]]
svn path=/trunk/; revision=37421
Fixes issue caused by dictionary.foundry having ATTRIBUTE names containing
a '.' (e.g., Foundry-MAC-Authent-needs-802.1x).
So: Revert SVN #37386 which temporarily changed the '.' to '-'.
svn path=/trunk/; revision=37405
alignment problems and that wouldn't even happen if the "data" member of
a GArray were a "void *".
Clean up indentation.
svn path=/trunk/; revision=36854
- implement "ether" attribute;
- parse "abinary" attribute [uses existing radius_abinary()]
Also: add a comment in packet-radius.h about the meaning of the encrypt flag.
svn path=/trunk/; revision=28952
In the RADIUS dissector, the function radius_register_avp_dissector() registers
vendors that are not already present in the dictionary hash-table. As far as I
can see, there are two problems with this:
1. The function does not set the number of type/length octets and the has_flags
variable for that AVP, which is required to correctly decode AVP/VSA values
2. In some situations, the function is called _before_ radius_load_dictionary()
is called (for example for the vendor 3GPP (ID: 10415))
Therefore, all vendor entries that are created by calling
radius_register_avp_dissector() leave their type_octets and length_octets un-initialized,
which causes incorrect decoding.
[Result: Radius dissector displays messages such as:
"Malformed Packet: RADIUS" and "Error/Malformed: Malformed Packet(Exception occurred)"]
The attached patch fixes this problem by assuming that the dictionary knows the
'ground truth' about the type/length octet and the has_flags information and allows it to
overwrite these values even for vendors that have already been loaded.
Also: (from Bill Meier): set the type/length octet and the has_flags variables to default
"standard" values (1,1,FALSE) in radius_register_avp_dissector().
Fixes Bug #3651 (and Bug #3635).
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3651https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3635
svn path=/trunk/; revision=28937
libwireshark (and the plugins using those functions) do not depend on
wiretap on Windows.
While doing that, rename the eth_* functions to ws_*.
svn path=/trunk/; revision=25354
To prevent Windows compiler errors when using flex 2.5.35.
Fixes "missing unistd.h" and yywrap "mismatched parameter" warnings
[Upcoming Part 3: ignore 'signed /unsigned mismatch' errors]
svn path=/trunk/; revision=25173
proto.[hc]
define new APIs to allow delayed registration of protocol fields,
so that dissectors with "flexible" fields like xml, radius, diameter,
snmp do not have to load their files at startup but can do so as late as possible.
gtk/dfilter_expr_dlg.c :
have the expression dialog registering all prefixes so that all fileds appear in the dialog
tshark.c
register all prefixes when called with -G
epan/radius_dict.l
epan/dissectors/packet-radius.c
epan/dissectors/packet-radius.h
refactor registration to delay dictionary loading as long as possible
svn path=/trunk/; revision=24762
such as the fact that Flex strips all but the last component of the "-o"
argument, and that it doesn't generate a header file to declare routines
the generated lexical analyzer defines. Use that script when building
lexical analyzers, and, for each lexical analyzer, include the generated
header file in the generated analyzer.
svn path=/trunk/; revision=22446
Move the %options to the beginning if they weren't already there, and
put them in the same order in all files.
Add "prefix=" options to .l files that don't already have them, so we
don't have to pass a "-P" option.
Add "never-interactive" and "noyywrap" options to our lexical analyzers,
to remove extra isatty() checks and to eliminate the need for yywrap()
from the Flex library.
Get rid of %option nostdinit - that's the default.
Add .l.c: rules to Makefile.am files, replacing the rules for specific
.l files. Have those rules all check that $(LEX) is set.
Update the address for the FSF.
svn path=/trunk/; revision=22424
numbers. (Currently, we don't have any dictionary entries with that
type, although we have an attribute with special code to handle it that
uses that type.)
Specially handle Framed-IP-Address, Login-IP-Host, and
Framed-IPX-Network, so that the special values are displayed specially.
Clean up indentation.
Don't specify a number base for IPv4 or IPv6 addresses; the number base
is ignored.
svn path=/trunk/; revision=16008