* Builds without AUTH now compile.
* Builds without IPv4LL now compile.
Thanks to Joerg Sonnenberger.
* BPF no longer uses a variable length buffer for stack protector.
* Minor documentation fix for duid file location.
Thanks to Peter Colberg.
* source file locations reworked:
dhcpcd source is in src
dhcpcd hooks are in hooks
compat is in compat
* README split into README.md and BUILDING.md
* internal routing is now protocol agnostic
* avoid using __packed and use compile time asserts instead
* addresses some alignment issues
* disable some ARP code on kernels which support RFC5227
* BSD IPv6 kernel settings are now updated to reflect dhcpcd config
* custom logger has been removed, syslog handles everything
as such, the --logfile option has been removed as well.
If you need better/earlier logging, get a better syslogger!
* distinfo and signed distinfo files are now available alongside
release taraballs from this point onwards
* default DBDIR has changed from /var/db to /var/db/dhcpcd
* /etc/dhcpcd.duid moves to DBDIR/duid
* /etc/dhcpcd.secret moves to DBDIR/secret
* lease file names have dhcpcd removed from them as they are now
inside a directory of the same name
* fixed issues with reject routes not working on some platforms
* improved nl80211 support on Linux for working out the SSID
* no longer request NTP by default in dhcpcd.conf
* BPF filtering vastly improved so dhcpcd only wake up on
ARP or DHCP packets destined for it
* support for MUD URL (draft-ietf-opsawg-mud-05)
* if the kernel isn't doing DAD, don't insist on waiting for it
to actually do it
* fix a potential crash where the DHCP or ARP states could be
freed before the packet processing loop naturally breaks
* removed gateway and nogateway options
(these can be controlled by the nooption directive which
works for more than just gateways)
* removed ipv6ra_own and ipv6ra_own_default options
(these can be controled by the ipv6rs/noipv6rs directive)
* fix a crash receiving SIGUSR1
Remove hardcoded argument to .Os
Remove extra arguments to .Dt
The extra arguments to .Dt were being parsed as the machine architecture for
the man page by mandoc parser, because of which the output of apropos(1) would show
it as file/ntp.keys(5). Same problem exists with other ntp man pages as well.
Committing with approval from Christos, we will investigate and fix the problems
in the source when regenerating the man pages next time.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
Summary of changes in tzdata2017b (2017-03-17 07:30:38 -0700):
Haiti resumed observance of DST in 2017 (on Mar 12)
Liberia changed from -004430 to +00 on 1972-01-07, not 1972-05-01.
Use "MMT" to abbreviate Liberia's time zone before 1972,
as "-004430" (tzdata2016a) is one byte over the POSIX limit.
--- MAJOR NEW FEATURES ---
* apropos(1): Reimplement complete semantic search functionality
without the dependency on SQLite3, using only POSIX APIs.
This comes with a completely new mandoc.db(5) file format.
* man(1): Support more than one tag entry for the same search term,
plus some minor improvements to the less(1) :t support.
* -Thtml: Use real macro names for CSS classes.
Systematic cleanup of and many improvements to mandoc.css.
* -Thtml: Produce human readable HTML code by using indentation
and better line breaks. Improve various HTML elements,
and trim several useless ones.
* New catman(8) utility, still somewhat experimental.
* Now includes a portable version of the OpenBSD mandoc regression
suite, see regress/regress.pl.1 for details.
--- REMOVED FUNCTIONALITY ---
* Operating systems that don't provide mmap(3) are no longer supported.
* Drop support for manpath(1). Even if your system has manpath(1),
it is simpler to use MANPATH_DEFAULT in configure.local for
operating system defaults, man.conf(5) for machine-specific
modifications, and ${MANPATH}, -m, and -M for user preferences
than to bother with the complexity of manpath(1).
* makewhatis(8) -p: No longer warn about missing MLINKS since these
are no longer needed for anything.
--- MINOR NEW FEATURES ---
* mdoc(7): Warn about invalid punctuation and content below NAME.
* mdoc(7): Warn about .Xr lacking the second argument (section).
* mdoc(7): Warn about violations of the rule "new sentence, new line".
* roff(7): Warn about trailing whitespace at the end of comments.
* mdoc(7): Improve rendering of double quotes.
* mdoc(7): Always do text production in the validator, never in the
formatters. Cleaner, simpler, shorter, helps NetBSD apropos(1)
and also makes -Ttree output more useful.
* -Ttree: Show metadata and some additional node flags.
New -Onoval output option to show the unvalidated tree.
--- RELIABILITY BUGFIXES ---
* man(1): Make "man -l" work with standard input from a pipe or file,
as long as standard output is a terminal.
* man(7): Fix out of bounds read access if a text node immediately
preceded the first .SH header.
* mdoc(7): Fix out of bounds read access for .Bl without a type
but with a width.
* mdoc(7): Fix out of bounds read access for .Bl -column starting
with a tab character instead of a child .It macro.
* mdoc(7): Fix syntax tree corruption leading to segfaults caused
by stray block end macros in nested blocks of mismatching type.
* man(1): Fix NULL dereference when the first of multiple pages
shown was preformatted.
* mdoc(7): Fix syntax tree corruption leading to NULL dereference
caused by partial implicit macros inside .Bl -column table cells.
* mdoc(7): Fix syntax tree corruption leading to NULL dereference
for macro sequences like .Bl .Bl .It Bo .El .It.
* mdoc(7): Fix syntax tree corruption leading to NULL dereference
caused by .Ta following a nested .Bl -column breaking another block.
* mdoc(7): Fix syntax tree corruption sometimes leading to NULL
dereference caused by indirectly broken .Nd or .Nm blocks.
* mdoc(7) -Thtml: Fix a NULL dereference for .Bl -column with 0 columns.
* mdoc(7): Fix NULL dereference in some specific cases of a
block-end macro calling another block-end macro.
* mdoc(7): Fix NULL dereference if the only child of the head
of the first .Sh was an empty in-line macro.
* eqn(7): Fix NULL dereference in the terminal formatter
for empty matrices and empty square roots.
* mdoc(7): Fix an assertion failure for a .Bd without a type that
breaks another block.
* mdoc(7): Fix an assertion failure that happened for some .Bl -column
lists containing a column width of "-4n", "-3n", or "-2n".
* mdoc(7): Fix an assertion failure caused by .Bl -column without .It
but containing eqn(7) or tbl(7) code.
* roff(7): Fix an assertion failure caused by \z\[u00FF] with -Tps/-Tpdf.
* roff(7): Fix an assertion failures caused by whitespace inside \o''
(overstrike) sequences.
* -Thtml: Fix an assertion failure caused by -Oman or -Oincludes of
excessive length.
--- PORTABILITY IMPROVEMENTS ---
* man(1): Do not mix stdio narrow and wide stream orientation
on stdout, which could cause output corruption on glibc.
* mandoc(1): Autodetect a suitable locale for -Tutf8 mode.
* ./configure: Autodetect whether PATH_MAX and O_DIRECTORY are defined.
* ./configure: Autodetect if nanosleep(3) needs -lrt.
* ./configure: Provide an ${LN} configuration variable.
* ./configure: Put compiler arguments that may contain -l at the end.
--- MINOR BUGFIXES ---
* mdoc(7): Fix SYNOPSIS output if the first child of .Nm is a macro.
* mdoc(7) -Thtml: Improve formatting of .Bl -tag with short tags.
* man(7) -Thtml: Preserve whitespace in .nf (nofill) mode.
* mandoc(1): Error out on invalid output options on the command line.
--- STRUCTURAL CHANGES, no functional change ---
* Redesign part of the mandoc_html(3) interfaces, making them much
easier to use and reducing the amount of code by a few hundred lines.
--- THANKS TO ---
* Michael Stapelberg (Debian) for designing the new mandocd(8)
and parts of the new catman(8), for release testing, and for a
number of patches and bug reports.
* Baptiste Daroussin (FreeBSD) for profiling the new makewhatis(8)
implementation and suggesting an algorithmic improvement which
more than doubled performance, and for a few bug reports.
* Ed Maste (FreeBSD) for an important patch improving reproducibility
of builds in makewhatis(8), and for a few bug reports.
* Theo Buehler (OpenBSD) for almost twenty important bug reports,
most of them found by systematic afl(1) fuzzing.
* Benny Lofgren, David Dahlberg, and in particular Vadim Zhukov
for crucial help in getting .Bl -tag CSS formatting fixed.
* Svyatoslav Mishyn (Crux Linux) for an initial version of the
patch to autodetect a suitable locale for -Tutf8 mode
and for release testing.
* Jason McIntyre (OpenBSD) for multiple useful discussions
and a number of bug reports.
* Sevan Janiyan (NetBSD) for extensive release testing and multiple
bug reports.
* Thomas Klausner and Christos Zoulas (NetBSD), Yuri Pankov (illumos),
and Leah Neukirchen (Void Linux) for release testing and bug reports.
* Ulrich Spoerlein (FreeBSD) for release testing.
* Alexander Bluhm, Andrew Fresh, Antoine Jacoutot, Antony Bentley,
Christian Weisgerber, Jonathan Gray, Marc Espie, Martijn van Duren,
Stuart Henderson, Ted Unangst, Theo de Raadt (OpenBSD), Abhinav
Upadhyay, Kamil Rytarowski (NetBSD), Aaron M. Ucko, Bdale Garbee,
Reiner Herrmann, Shane Kerr (Debian), Daniel Sabogal (Alpine Linux),
Carsten Kunze (Heirloom roff), Kristaps Dzonsons (bsd.lv),
Anton Lindqvist, Jan Stary, Jeremy A. Mates, Mark Patruck,
Pavan Maddamsetti, Sean Levy <attila@stalphonsos.com>, and
Tiago Silva for bug reports.
* Brent Cook, Marc Espie, Philip Guenther, Todd Miller (OpenBSD)
and Markus Waldeck for useful discussions.
* And as usual, OpenCSW for providing me with a Solaris 9/10/11
testing environment.
Approximately 25% better performance from the R-Tree extension.
Uses compiler built-ins (ex: __builtin_bswap32() or _byteswap_ulong()) for byteswapping when available.
Uses the sqlite3_blob key/value access object instead of SQL for pulling content out of R-Tree nodes
Other miscellaneous enhancements such as loop unrolling.
Add the SQLITE_DEFAULT_LOOKASIDE compile-time option.
Increase the default lookaside size from 512,125 to 1200,100 as this provides better performance while only adding 56KB of extra memory per connection. Memory-sensitive applications can restore the old default at compile-time, start-time, or run-time.
Use compiler built-ins __builtin_sub_overflow(), __builtin_add_overflow(), and __builtin_mul_overflow() when available. (All compiler built-ins can be omitted with the SQLITE_DISABLE_INTRINSIC compile-time option.)
Added the SQLITE_ENABLE_NULL_TRIM compile-time option, which can result in significantly smaller database files for some applications, at the risk of being incompatible with older versions of SQLite.
Change SQLITE_DEFAULT_PCACHE_INITSZ from 100 to 20, for improved performance.
Added the SQLITE_UINT64_TYPE compile-time option as an analog to SQLITE_INT64_TYPE.
Perform some UPDATE operations in a single pass instead of in two passes.
Enhance the session extension to support WITHOUT ROWID tables.
Fixed performance problems and potential stack overflows when creating views from multi-row VALUES clauses with hundreds of thousands of rows.
Added the sha1.c extension.
In the command-line shell, enhance the ".mode" command so that it restores the default column and row separators for modes "line", "list", "column", and "tcl".
Enhance the SQLITE_DIRECT_OVERFLOW_READ option so that it works in WAL mode as long as the pages being read are not in the WAL file.
Enhance the LEMON parser generator so that it can store the parser object as a stack variable rather than allocating space from the heap and make use of that enhancement in the amalgamation.
Other performance improvements. Uses about 6.5% fewer CPU cycles.
Bug Fixes:
Throw an error if the ON clause of a LEFT JOIN references tables to the right of the ON clause. This is the same behavior as PostgreSQL. Formerly, SQLite silently converted the LEFT JOIN into an INNER JOIN. Fix for ticket 25e335f802dd.
Use the correct affinity for columns of automatic indexes. Ticket 7ffd1ca1d2ad4ec.
Ensure that the sqlite3_blob_reopen() interface can correctly handle short rows. Fix for ticket e6e962d6b0f06f46e.
Hashes:
SQLITE_SOURCE_ID: "2017-02-13 16:02:40 ada05cfa86ad7f5645450ac7a2a21c9aa6e57d2c"
SHA1 for sqlite3.c: cc7d708bb073c44102a59ed63ce6142da1f174d1
2017-01-06 (3.16.2)
Fix the REPLACE statement for WITHOUT ROWID tables that lack secondary indexes so that it works correctly with triggers and foreign keys. This was a new bug caused by performance optimizations added in version 3.16.0. Ticket 30027b613b4
Fix the sqlite3_value_text() interface so that it correctly translates content generated by zeroblob() into a string of all 0x00 characters. This is a long-standing issue discovered after the 3.16.1 release by OSS-Fuzz
Fix the bytecode generator to deal with a subquery in the FROM clause that is itself a UNION ALL where one side of the UNION ALL is a view that contains an ORDER BY. This is a long-standing issue that was discovered after the release of 3.16.1. See ticket 190c2507.
Adjust the sqlite3_column_count() API so it more often returns the same values for PRAGMA statements as it did in prior releases, to minimize disruption to applications that might be using that interface in unexpected ways.
Hashes:
SQLITE_SOURCE_ID: "2017-01-06 16:32:41 a65a62893ca8319e89e48b8a38cf8a59c69a8209"
SHA1 for sqlite3.c: 2bebdc3f24911c0d12b6d6c0123c3f84d6946b08
2017-01-03 (3.16.1)
Fix a bug concerning the use of row values within triggers (see ticket 8c9458e7) that was in version 3.15.0 but was not reported until moments after the 3.16.0 release was published.
Hashes:
SQLITE_SOURCE_ID: "2017-01-03 18:27:03 979f04392853b8053817a3eea2fc679947b437fd"
SHA1 for sqlite3.c: 354f6223490b30fd5320b4066b1535e4ce33988d
2017-01-02 (3.16.0)
Uses 9% fewer CPU cycles. (See the CPU performance measurement report for details on how this performance increase was computed.)
Added experimental support for PRAGMA functions.
Added the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option to sqlite3_db_config().
Enhance the date and time functions so that the 'unixepoch' modifier works for the full span of supported dates.
Changed the default configuration of the lookaside memory allocator from 500 slots of 128 bytes each into 125 slots of 512 bytes each.
Enhanced "WHERE x NOT NULL" partial indexes so that they are usable if the "x" column appears in a LIKE or GLOB operator.
Enhanced sqlite3_interrupt() so that it interrupts checkpoint operations that are in process.
Enhanced the LIKE and GLOB matching algorithm to be faster for cases when the pattern contains multiple wildcards.
Added the SQLITE_FCNTL_WIN32_GET_HANDLE file control opcode.
Added ".mode quote" to the command-line shell.
Added ".lint fkey-indexes" to the command-line shell.
Added the .imposter dot-command to the command-line shell.
Added the remember(V,PTR) SQL function as a loadable extension.
Rename the SQLITE_OMIT_BUILTIN_TEST compile-time option to SQLITE_UNTESTABLE to better reflect the implications of using it.
Bug Fixes:
Fix a long-standing bug in the query planner that caused incorrect results on a LEFT JOIN where the left-hand table is a subquery and the join constraint is a bare column name coming from the left-hand subquery. Ticket 2df0107b.
Correctly handle the integer literal -0x8000000000000000 in the query planner.
Hashes:
SQLITE_SOURCE_ID: "2017-01-02 11:57:58 04ac0b75b1716541b2b97704f4809cb7ef19cccf"
SHA1 for sqlite3.c: e2920fb885569d14197c9b7958e6f1db573ee669
2016-11-28 (3.15.2)
Multiple bug fixes to the row value logic that was introduced in version 3.15.0.
Fix a NULL pointer dereference in ATTACH/DETACH following a maliciously constructed syntax error. Ticket 2f1b168ab4d4844.
Fix a crash that can occur following an out-of-memory condition in the built-in instr() function.
In the JSON extension, fix the JSON validator so that it correctly rejects invalid backslash escapes within strings.
Hashes:
SQLITE_SOURCE_ID: "2016-11-28 19:13:37 bbd85d235f7037c6a033a9690534391ffeacecc8"
SHA1 for sqlite3.c: 06d77b42a3e70609f8d4bbb97caf53652f1082cb
2016-11-04 (3.15.1)
Added SQLITE_FCNTL_WIN32_GET_HANDLE file control opcode.
Fix the VACUUM command so that it spills excess content to disk rather than holding everything in memory, and possible causing an out-of-memory error for larger database files. This fixes an issue introduced by version 3.15.0.
Fix a case (present since 3.8.0 - 2013-08-26) where OR-connected terms in the ON clause of a LEFT JOIN might cause incorrect results. Ticket 34a579141b2c5ac.
Fix a case where the use of row values in the ON clause of a LEFT JOIN might cause incorrect results. Ticket fef4bb4bd9185ec8f.
Hashes:
SQLITE_SOURCE_ID: "2016-11-04 12:08:49 1136863c76576110e710dd5d69ab6bf347c65e36"
SHA1 for sqlite3.c: e7c26a7be3e431dd06898f8d262c4ef240c07366
2016-10-14 (3.15.0)
Added support for row values.
Allow deterministic SQL functions in the WHERE clause of a partial index.
Added the "modeof=filename" URI parameter on the unix VFS
Added support for SQLITE_DBCONFIG_MAINDBNAME.
Added the ability to VACUUM an ATTACH-ed database.
Enhancements to the command-line shell:
Add the ".testcase" and ".check" dot-commands.
Added the --new option to the ".open" dot-command, causing any prior content in the database to be purged prior to opening.
Enhance the fts5vocab virtual table to handle "ORDER BY term" efficiently.
Miscellaneous micro-optimizations reduce CPU usage by more than 7% on common workloads. Most optimization in this release has been on the front-end (sqlite3_prepare_v2()).
Bug Fixes:
The multiply operator now correctly detects 64-bit integer overflow and promotes to floating point in all corner-cases. Fix for ticket 1ec41379c9c1e400.
Correct handling of columns with redundant unique indexes when those columns are used on the LHS of an IN operator. Fix for ticket 0eab1ac759.
Skip NULL entries on range queries in indexes on expressions. Fix for ticket 4baa46491212947.
Ensure that the AUTOINCREMENT counters in the sqlite_sequence table are initialized doing "Xfer Optimization" on "INSERT ... SELECT" statements. Fix for ticket 7b3328086a5c116c.
Make sure the ORDER BY LIMIT optimization (from check-in 559733b09e) works with IN operators on INTEGER PRIMARY KEYs. Fix for ticket 96c1454c
Hashes:
SQLITE_SOURCE_ID: "2016-10-14 10:20:30 707875582fcba352b4906a595ad89198d84711d8"
SHA1 for sqlite3.c: fba106f8f6493c66eeed08a2dfff0907de54ae76
2016-09-12 (3.14.2)
Improved support for using the STDCALL calling convention in winsqlite3.dll.
Fix the sqlite3_trace_v2() interface so that it is disabled if either the callback or the mask arguments are zero, in accordance with the documentation.
Fix commenting errors and improve the comments generated on EXPLAIN listings when the -DSQLITE_ENABLE_EXPLAIN_COMMENTS compile-time option is used.
Fix the ".read" command in the command-line shell so that it understands that its input is not interactive.
Correct affinity computations for a SELECT on the RHS of an IN operator. Fix for ticket 199df4168c.
The ORDER BY LIMIT optimization is not valid unless the inner-most IN operator loop is actually used by the query plan. Fix for ticket 0c4df46116e90f92.
Fix an internal code generator problem that was causing some DELETE operations to no-op. Ticket ef360601
Hashes:
SQLITE_SOURCE_ID: "2016-09-12 18:50:49 29dbef4b8585f753861a36d6dd102ca634197bd6"
SHA1 for sqlite3.c: bcc4a1989db45e7f223191f2d0f66c1c28946383
2016-08-11 (3.14.1)
A performance enhancement to the page-cache "truncate" operation reduces COMMIT time by dozens of milliseconds on systems with a large page cache.
Fix to the --rbu option of sqldiff.
Hashes:
SQLITE_SOURCE_ID: "2016-08-11 18:53:32 a12d8059770df4bca59e321c266410344242bf7b"
SHA1 for sqlite3.c: d545b24892278272ce4e40e0567d69c8babf12ea
2016-08-08 (3.14)
Celebrating the SQLite "# release" with a home-baked pie.
Added support for WITHOUT ROWID virtual tables.
Improved the query planner so that the OR optimization can be used on virtual tables even if one or more of the disjuncts use the LIKE, GLOB, REGEXP, MATCH operators.
Added the CSV virtual table for reading RFC 4180 formatted comma-separated value files.
Added the carray() table-valued function extension.
Enabled persistent loadable extensions using the new SQLITE_OK_LOAD_PERMANENTLY return code from the extension entry point.
Added the SQLITE_DBSTATUS_CACHE_USED_SHARED option to sqlite3_db_status().
Add the vfsstat.c loadable extension - a VFS shim that measures I/O together with an eponymous virtual table that provides access to the measurements.
Improved algorithm for running queries with both an ORDER BY and a LIMIT where only the inner-most loop naturally generates rows in the correct order.
Enhancements to Lemon parser generator, so that it generates a faster parser.
The PRAGMA compile_options command now attempts to show the version number of the compiler that generated the library.
Enhance PRAGMA table_info so that it provides information about eponymous virtual tables.
Added the "win32-none" VFS, analogous to the "unix-none" VFS, that works like the default "win32" VFS except that it ignores all file locks.
The query planner uses a full scan of a partial index instead of a full scan of the main table, in cases where that makes sense.
Allow table-valued functions to appear on the right-hand side of an IN operator.
Created the dbhash.exe command-line utility.
Added two new C-language interfaces: sqlite3_expanded_sql() and sqlite3_trace_v2(). These new interfaces subsume the functions of sqlite3_trace() and sqlite3_profile() which are now deprecated.
Added the json_quote() SQL function to the json1 extension.
Disable the authorizer callback while reparsing the schema.
Added the SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option and turned that option on by default when building the command-line shell.
Bug Fixes:
Fix the ALTER TABLE command so that it does not corrupt descending indexes when adding a column to a legacy file format database. Ticket f68bf68513a1c15f
Fix a NULL-pointer dereference/crash that could occurs when a transitive WHERE clause references a non-existent collating sequence. Ticket e8d439c77685eca6.
Improved the cost estimation for an index scan which includes a WHERE clause that can be partially or fully evaluated using columns in the index and without having to do a table lookup. This fixes a performance regression that occurred for some obscure queries following the ORDER BY LIMIT optimization introduced in version 3.12.0.
Hashes:
SQLITE_SOURCE_ID: "2016-08-08 13:40:27 d5e98057028abcf7217d0d2b2e29bbbcdf09d6de"
SHA1 for sqlite3.c: 234a3275d03a287434ace3ccdf1afb208e6b0e92
Summary of changes in tzdata2017a (2017-02-28 00:05:36 -0800):
Briefly: Southern Chile moves from -04/-03 to -03, and Mongolia
discontinues DST.
Changes to future time stamps
Mongolia no longer observes DST.
Chile's Region of Magallanes moves from -04/-03 to -03 year-round.
Changes to past time stamps
Fix many entries for historical time stamps for Europe/Madrid
before 1979, to agree with tables compiled by Pere Planesas of the
National Astronomical Observatory of Spain. As a side effect,
this changes some time stamps for Africa/Ceuta before 1929, which
are probably guesswork anyway.
Ecuador observed DST from 1992-11-28 to 1993-02-05.
Asia/Atyrau and Asia/Oral were at +03 (not +04) before 1930-06-21.
Changes to past and future time zone abbreviations
Switch to numeric time zone abbreviations for South America, as
part of the ongoing project of removing invented abbreviations.
For Alaska time from 1900 through 1967, instead of "CAT" use the
abbreviation "AST", the abbreviation commonly used at the time
(Atlantic Standard Time had not been standardized yet). Use "AWT"
and "APT" instead of the invented abbreviations "CAWT" and "CAPT".
Use "CST" and "CDT" instead of invented abbreviations for Macau
before 1999 and Taiwan before 1938, and use "JST" instead of the
invented abbreviation "JCST" for Japan and Korea before 1938.
Change to database entry category
Move the Pacific/Johnston link from 'australasia' to 'backward',
since Johnston is now uninhabited.
fix the dtrace "args" variable to return correct values.
simplify the invop handlers a bit by changing the second argument
from a pointer into the stack to a pointer to the trapframe.
after rev 1.6 of m68k.md (which itself reverted a local patch that hadn't
been necessary for over a decade... see gcc bugzilla 12792).
discussed with christos and confirmed no regressions with the atf tests.
release number, 0=minor release number, x=patchlevel. The stable
release never changes except for patches that address bugs or
emergencies. Patches change the patchlevel and the release date.
New features are developed in snapshot releases. These are called
postfix-3.1-yyyymmdd where yyyymmdd is the release date (yyyy=year,
mm=month, dd=day). Patches are never issued for snapshot releases;
instead, a new snapshot is released.
The mail_release_date configuration parameter (format: yyyymmdd)
specifies the release date of a stable release or snapshot release.
If you upgrade from Postfix 2.10 or earlier, read RELEASE_NOTES-2.11
before proceeding.
Notes for distribution maintainers
----------------------------------
* New backwards-compatibility safety net.
With NEW Postfix installs, you MUST install a main.cf file with
the setting "compatibility_level = 2". See conf/main.cf for an
example.
With UPGRADES of existing Postfix systems, you MUST NOT change the
main.cf compatibility_level setting, nor add this setting if it
does not exist.
Several Postfix default settings have changed with Postfix 3.0. To
avoid massive frustration with existing Postfix installations,
Postfix 3.0 comes with a safety net that forces Postfix to keep
running with backwards-compatible main.cf and master.cf default
settings. This safety net depends on the main.cf compatibility_level
setting (default: 0). Details are in COMPATIBILITY_README.
* New Postfix build system.
The Postfix build/install procedure has changed to support Postfix
dynamically-linked libraries and database plugins. These must not
be "shared" with non-Postfix programs, and therefore must not be
installed in a public directory.
To avoid massive frustration due to broken patches, PLEASE BUILD
POSTFIX FIRST WITHOUT APPLYING ANY PATCHES. Follow the INSTALL
instructions (see "Building with Postfix dynamically-linked libraries
and database plugins"), and see how things work and what the
dynamically-linked libraries, database plugin, and configuration
files look like. Then, go ahead and perform your platform-specific
customizations. The INSTALL section "Tips for distribution maintainers"
has further suggestions.
Major changes - critical
------------------------
[Incompat 20140714] After upgrading Postfix, "postfix reload" (or
start/stop) is required. Several Postfix-internal protocols have
been extended to support SMTPUTF8. Failure to reload or restart
will result in mail staying queued, while Postfix daemons log
warning messages about unexpected attributes.
Major changes - default settings
--------------------------------
[Incompat 20141009] The default settings have changed for relay_domains
(new: empty, old: $mydestination) and mynetworks_style (new: host,
old: subnet). However the backwards-compatibility safety net will
prevent these changes from taking effect, giving the system
administrator the option to make an old default setting permanent
in main.cf or to adopt the new default setting, before turning off
backwards compatibility. See COMPATIBILITY_README for details.
[Incompat 20141001] A new backwards-compatibility safety net forces
Postfix to run with backwards-compatible main.cf and master.cf
default settings after an upgrade to a newer but incompatible Postfix
version. See COMPATIBILITY_README for details.
While the backwards-compatible default settings are in effect,
Postfix logs what services or what email would be affected by the
incompatible change. Based on this the administrator can make some
backwards-compatibility settings permanent in main.cf or master.cf,
before turning off backwards compatibility.
See postconf.5.html#compatibility_level for details.
[Incompat 20141001] The default settings
have changed for append_dot_mydomain (new: no. old: yes), master.cf
chroot (new: n, old: y), and smtputf8 (new: yes, old: no).
Major changes - access control
------------------------------
[Feature 20141119] Support for BCC actions in header/body_checks
and milter_header_checks. There is no limit on the number of BCC
actions that may be specified, other than the implicit limit due
to finite storage. BCC support will not be implemented in Postfix
delivery agent header/body_checks.
It works in the same way as always_bcc and sender/recipient_bcc_maps:
there can be only one address per action, recipients are added with
the NOTIFY=NONE delivery status notification option, and duplicate
recipients are ignored (with the same delivery status notification
options).
[Incompat 20141009] The default settings have changed for relay_domains
(new: empty, old: $mydestination) and mynetworks_style (new: host,
old: subnet). However the backwards-compatibility safety net will
prevent these changes from taking effect, giving the system
administrator the option to make an old default setting permanent
in main.cf or to adopt the new default setting, before turning off
backwards compatibility. See COMPATIBILITY_README for details.
[Feature 20140618] New INFO action in access(5) tables, for consistency
with header/body_checks.
[Feature 20140620] New check_xxx_a_access (for xxx in client,
reverse_client, helo, sender, recipient) implements access control
on all A and AAAA IP addresses for respectively the client hostname,
helo parameter, sender domain or recipient domain. This complements
the existing check_xxx_mx_access and check_xxx_ns_access features.
Major changes - address rewriting
---------------------------------
[Incompat 20141001] The default settings have changed for
append_dot_mydomain (new: no. old: yes), master.cf chroot (new:
n, old: y), and smtputf8 (new: yes, old: no).
Major changes - address verification
------------------------------------
[Feature 20141227] The new smtp_address_verify_target parameter
(default: rcpt) specifies what protocol stage decides if a recipient
is valid. Specify "data" for servers that reject invalid recipients
in response to the DATA command.
Major changes - database support
--------------------------------
[Feature 20140512] Support for Berkeley DB version 6.
[Feature 20140618] The "randmap" lookup table performs random
selection. This may be used to implement load balancing, for example:
/etc/postfix/transport:
# Deliver my own domain as usual.
example.com :
.example.com :
/etc/postfix/main.cf:
transport_maps =
# Deliver my own domain as usual.
hash:/etc/postfix/transport
# Deliver other domains via randomly-selected relayhosts
randmap:{smtp:smtp0.example.com, smtp:smtp1.example.com}
A variant of this can randomly select SMTP clients with different
smtp_bind_address settings.
To implement different weights, specify lookup results multiple
times. For example, to choose smtp:smtp1.example.com twice as often
as smtp:smtp0.example.com, specify smtp:smtp1.example.com twice.
A future version may support randmap:/path/to/file to load a list
of results from file.
[Feature 20140618] As the name suggests, the "pipemap" table
implements a pipeline of lookup tables. The name of the table
specifies the pipeline as a sequence of tables. For example, the
following prevents SMTP mail to system accounts that have "nologin"
as their login shell:
/etc/postfix/main.cf:
local_recipient_maps =
pipemap:{unix:passwd.byname, pcre:/etc/postfix/no-nologin.pcre}
alias_maps
/etc/postfix/no-nologin.pcre:
!/nologin/ whatever
Each "pipemap:" query is given to the first table. Each table
lookup result becomes the query for the next table in the pipeline,
and the last table produces the final result. When any table lookup
produces no result, the entire pipeline produces no result.
A future version may support pipemap:/path/to/file to load a list
of lookup tables from file.
[Feature 20140924] Support for unionmap, with the same syntax as
pipemap. This sends a query to all tables, and concatenates non-empty
results, separated by comma.
[Feature 20131121] The "static" lookup table now supports whitespace
when invoked as "static:{ text with whitespace }", so that it can
be used, for example, at the end of smtpd_mumble_restrictions as
"check_mumble_access static:{reject text...}".
[Feature 20141126] "inline:{key=value, { key = text with comma/space}}"
avoids the need to create a database for just a few entries.
Major changes - delivery status notifications
---------------------------------------------
[Feature 20140321] Delivery status filter support, to replace the
delivery status codes and explanatory text of successful or
unsuccessful deliveries by Postfix mail delivery agents.
This was originally implemented for sites that want to turn certain
soft delivery errors into hard delivery errors, but it can also be
used to censor out information from delivery confirmation reports.
This feature is implemented as a filter that replaces the three-number
enhanced status code and descriptive text in Postfix delivery agent
success, bounce, or defer messages. Note: this will not override
"soft_bounce=yes", and this will not change a successful delivery
status into an unsuccessful status or vice versa.
The first example turns specific soft TLS errors into hard
errors, by overriding the first number in the enhanced status code.
/etc/postfix/main.cf:
smtp_delivery_status_filter = pcre:/etc/postfix/smtp_dsn_filter
/etc/postfix/smtp_dsn_filter:
/^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/ 5$1
/^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/ 5$1
The second example removes the destination command name and file
name from local(8) successful delivery reports, so that they will
not be reported when a sender requests confirmation of delivery.
/etc/postfix/main.cf:
local_delivery_status_filter = pcre:/etc/postfix/local_dsn_filter
/etc/postfix/local_dsn_filter:
/^(2\S+ delivered to file).+/ $1
/^(2\S+ delivered to command).+/ $1
This feature is supported in the lmtp(8), local(8), pipe(8), smtp(8)
and virtual(8) delivery agents. That is, all delivery agents that
actually deliver mail. It will not be implemented in the error and
retry pseudo-delivery agents.
The new main.cf parameters and default values are:
default_delivery_status_filter =
lmtp_delivery_status_filter = $default_delivery_status_filter
local_delivery_status_filter = $default_delivery_status_filter
pipe_delivery_status_filter = $default_delivery_status_filter
smtp_delivery_status_filter = $default_delivery_status_filter
virtual_delivery_status_filter = $default_delivery_status_filter
See the postconf(5) manpage for more details.
[Incompat 20140618] The pipe(8) delivery agent will now log a limited
amount of command output upon successful delivery, and will report
that output in "SUCCESS" delivery status reports. This is another
good reason to disable inbound DSN requests at the Internet perimeter.
[Feature 20140907] With "confirm_delay_cleared = yes", Postfix
informs the sender when delayed mail leaves the queue (this is in
addition to the delay_warning_time feature that warns when mail is
still queued). This feature is disabled by default, because it can
result in a sudden burst of notifications when the queue drains at
the end of a prolonged network outage.
Major changes - dns
-------------------
[Feature 20141128] Support for DNS server reply filters in the
Postfix SMTP/LMTP client and SMTP server. This helps to work around
mail delivery problems with sites that have incorrect DNS information.
Note: this has no effect on the implicit DNS lookups that are made
by nsswitch.conf or equivalent mechanisms.
This feature renders each lookup result as one line of text in
standard zone-file format as shown below. The class field is always
"IN", the preference field exists only for MX records, the names
of hosts, domains, etc. end in ".", and those names are in ASCII
form (xn--mumble form for internationalized domain names).
name ttl class type preference value
---------------------------------------------------------
postfix.org. 86400 IN MX 10 mail.cloud9.net.
Typically, one would match this text with a regexp: or pcre: table.
When a match is found, the table lookup result specifies an action.
By default, the table query and the action name are case-insensitive.
Currently, only the IGNORE action is implemented.
For safety reasons, Postfix logs a warning or defers mail delivery
when a DNS reply filter removes all lookup results from a successful
query.
The Postfix SMTP/LMTP client uses the smtp_dns_reply_filter and
lmtp_dns_reply_filter features only for Postfix SMTP client lookups
of MX, A, and AAAAA records to locate a remote SMTP or LMTP server,
including lookups that implement the features reject_unverified_sender
and reject_unverified_recipient. The filters are not used for lookups
made through nsswitch.conf and similar mechanisms.
The Postfix SMTP server uses the smtpd_dns_reply_filter feature
only for Postfix SMTP server lookups of MX, A, AAAAA, and TXT records
to implement the features reject_unknown_helo_hostname,
reject_unknown_sender_domain, reject_unknown_recipient_domain,
reject_rbl_*, and reject_rhsbl_*. The filter is not used for lookups
made through nsswitch.conf and similar mechanisms, such as lookups
of the remote SMTP client name.
[Feature 20141126] Nullmx support (MX records with a null hostname).
This change affects error messages only. The Postfix SMTP client
already bounced mail for such domains, and the Postfix SMTP server
already rejected such domains with reject_unknown_sender/recipient_domain.
This feature introduces a new SMTP server configuration parameter
nullmx_reject_code (default: 556).
Major changes - dynamic linking
-------------------------------
[Feature 20140530] Support to build Postfix with Postfix
dynamically-linked libraries, and with dynamically-loadable database
clients. These MUST NOT be used by non-Postfix programs. Postfix
dynamically-linked libraries introduce minor runtime overhead and
result in smaller Postfix executable files. Dynamically-loadable
database clients are useful when you distribute or install pre-compiled
packages. Postfix 3.0 supports dynamic loading for CDB, LDAP, LMDB,
MYSQL, PCRE, PGSQL, SDBM, and SQLITE database clients.
This implementation is based on Debian code by LaMont Jones, initially
ported by Viktor Dukhovni. Currently, support exists for recent
versions of Linux, FreeBSD, MacOS X, and for the ancient Solaris 9.
To support Postfix dynamically-linked libraries and dynamically-loadable
database clients, the Postfix build procedure had to be changed
(specifically, the files makedefs and Makefile.in, and the files
postfix-install and post-install that install or update Postfix).
[Incompat 20140530] The Postfix 3.0 build procedure expects that
you specify database library dependencies with variables named
AUXLIBS_CDB, AUXLIBS_LDAP, etc. With Postfix 3.0 and later, the
old AUXLIBS variable still supports building a statically-loaded
CDB etc. database client, but only the new AUXLIBS_CDB etc. variables
support building a dynamically-loaded or statically-loaded CDB etc.
database client. See CDB_README, LDAP_README, etc. for details.
Failure to follow this advice will defeat the purpose of dynamic
database client loading. Every Postfix executable file will have
database library dependencies. And that was exactly what dynamic
database client loading was meant to avoid.
Major changes - future proofing
-------------------------------
[Cleanup 20141224] The changes described here have no visible effect
on Postfix behavior, but they make Postfix code easier to maintain,
and therefore make new functionality easier to add.
* Compile-time argument typechecks of non-printf/scanf-like variadic
function argument lists.
* Deprecating the use of "char *" for non-text purposes such as
memory allocation and pointers to application context for call-back
functions. This dates from long-past days before void * became
universally available.
* Replace integer types for counters and sizes with size_t or ssize_t
equivalents. This eliminates some wasteful 64<->32bit conversions
on 64-bit systems.
Major changes - installation pathnames
--------------------------------------
[Incompat 20140625] For compliance with file system policies, some
non-executable files have been moved from $daemon_directory to the
directory specified with the new meta_directory configuration
parameter which has the same default value as the config_directory
parameter. This change affects non-executable files that are shared
between multiple Postfix instances such as postfix-files, dynamicmaps.cf,
and multi-instance template files.
For backwards compatibility with Postfix 2.6 .. 2.11, specify
"meta_directory = $daemon_directory" in main.cf before installing
or upgrading Postfix, or specify "meta_directory = /path/name" on
the "make makefiles", "make install" or "make upgrade" command line.
Major changes - milter
----------------------
[Feature 20140928] Support for per-Milter settings that override
main.cf parameters. For details see the section "Advanced policy
client configuration" in the SMTPD_POLICY_README document.
Here is an example that uses both old and new syntax:
smtpd_milters = { inet:127.0.0.1:port1, default_action=accept, ... },
inet:127.0.0.1:port2, ...
The supported attribute names are: command_timeout, connect_timeout,
content_timeout, default_action, and protocol. These have the same
names as the corresponding main.cf parameters, without the "milter_"
prefix.
The per-milter settings are specified as attribute=value pairs
separated by comma or space; specify { name = value } to allow
spaces around the "=" or within an attribute value.
[Feature 20141018] DMARC compatibility: when a Milter inserts a
header ABOVE Postfix's own Received: header, Postfix no longer
exposes its own Received: header to Milters (violating protocol)
and Postfix no longer hides the Milter-inserted header from Milters
(wtf).
Major changes - parameter syntax
--------------------------------
[Feature 20140921] In preparation for configurable mail headers and
logging, new main.cf support for if-then-else expressions:
${name?{text1}:{text2}}
and for logical expressions:
${{text1}=={text2}?{text3}:{text4}}
${{text1}!={text2}?{text3}:{text4}}
Whitespace before and after {text} is ignored. This can help to
make complex expressions more readable. See the postconf(5) manpage
for further details.
[Feature 20140928] Support for whitespace in daemon command-line
arguments. For details, see the "Command name + arguments" section
in the master(5) manpage. Example:
smtpd -o { parameter = value containing whitespace } ...
The { ... } form is also available for non-option command-line
arguments in master.cf, for example:
pipe ... argv=command { argument containing whitespace } ...
In both cases, whitespace immediately after "{" and before "}"
is ignored.
[Feature 20141005] Postfix import_environment and export_environment
now allow "{ name=value }" to protect whitespace in attribute values.
[Feature 20141006] The new message_drop_header parameter replaces
a hard-coded table that specifies what message headers the cleanup
daemon will remove. The list of supported header names covers RFC
5321, 5322, MIME RFCs, and some historical names.
Major changes - pipe daemon
---------------------------
[Incompat 20140618] The pipe(8) delivery agent will now log a limited
amount of command output upon successful delivery, and will report
that output in "SUCCESS" delivery status reports. This is another
good reason to disable inbound DSN requests at the Internet perimeter.
Major changes - policy client
-----------------------------
[Feature 20140703] This release introduces three new configuration
parameters that control error recovery for failed SMTPD policy
requests.
* smtpd_policy_service_default_action (default: 451 4.3.5 Server
configuration problem): The default action when an SMTPD policy
service request fails.
* smtpd_policy_service_try_limit (default: 2): The maximal number
of attempts to send an SMTPD policy service request before
giving up. This must be a number greater than zero.
* smtpd_policy_service_retry_delay (default: 1s): The delay between
attempts to resend a failed SMTPD policy service request. This
must be a number greater than zero.
See postconf(5) for details and limitations.
[Feature 20140928] Support for per-policy service settings that
override main.cf parameters. For details see the section "Different
settings for different Milter applications" in the MILTER_README
document.
Here is an example that uses both old and new syntax:
smtpd_recipient_restrictions = ...
check_policy_service { inet:127.0.0.1:port3, default_action=DUNNO }
check_policy_service inet:127.0.0.1:port4
...
The per-policy service settings are specified as attribute=value pairs
separated by comma or space; specify { name = value } to allow
spaces around the "=" or within an attribute value.
The supported attribute names are: default_action, max_idle, max_ttl,
request_limit, retry_delay, timeout, try_limit. These have the same
names as the corresponding main.cf parameters, without the
"smtpd_policy_service_" prefix.
[Feature 20140505] A client port attribute was added to the policy
delegation protocol.
[Feature 20140630] New smtpd_policy_service_request_limit feature to
limit the number of requests per Postfix SMTP server policy connection.
This is a workaround to avoid error-recovery delays with policy
servers that cannot maintain a persistent connection.
Major changes - position-independent executables
------------------------------------------------
[Feature 20150205] Preliminary support for building position-independent
executables (PIE), tested on Fedora Core 20, Ubuntu 14.04, FreeBSD
9 and 10, and NetBSD 6. Specify:
$ make makefiles pie=yes ...other arguments...
On some systems, PIE is used by the ASLR exploit mitigation technique
(ASLR = Address-Space Layout Randomization). Whether specifying
"pie=yes" has any effect at all depends on the compiler. Reportedly,
some compilers always produce PIE executables.
Major changes - postscreen
--------------------------
[Feature 20140501] Configurable time limit (postscreen_dnsbl_timeout)
for DNSBL or DNSWL lookups. This is separate from the timeouts in
the dnsblog(8) daemon which are controlled by system resolver(3)
routines.
Major changes - session fingerprint
-----------------------------------
[Feature 20140801] The Postfix SMTP server now logs at the end of
a session how many times an SMTP command was successfully invoked,
followed by the total number of invocations if some invocations
were unsuccessful.
This logging will enough to diagnose many problems without using
verbose logging or network sniffer.
Normal session, no TLS:
disconnect from name[addr] ehlo=1 mail=1 rcpt=1 data=1 quit=1
Normal session. with TLS:
disconnect from name[addr] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1
All recipients rejected, no ESMTP command pipelining:
disconnect from name[addr] ehlo=1 mail=1 rcpt=0/1 quit=1
All recipients rejected, with ESMTP command pipelining:
disconnect from name[addr] ehlo=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1
Password guessing bot, hangs up without QUIT:
disconnect from name[addr] ehlo=1 auth=0/1
Mis-configured client trying to use TLS wrappermode on port 587:
disconnect from name[addr] unknown=0/1
Logfile analyzers can trigger on the presence of "/". It indicates
that Postfix rejected at least one command.
[Feature 20150118] As a late addition, the SMTP server now also
logs the total number of commands (as "commands=x/y") even when the
client did not send any commands. This helps logfile analyzers to
recognize sessions without commands.
Major changes - smtp client
---------------------------
[Feature 20141227] The new smtp_address_verify_target parameter
(default: rcpt) determines what protocol stage decides if a recipient
is valid. Specify "data" for servers that reject recipients after
the DATA command.
Major changes - smtputf8
------------------------
[Incompat 20141001] The default settings have changed for
append_dot_mydomain (new: no, old: yes), master.cf chroot (new:
n, old: y), and smtputf8 (new: yes, old: no).
[Incompat 20140714] After upgrading Postfix, "postfix reload" (or
start/stop) is required. Several Postfix-internal protocols have
been extended to support SMTPUTF8. Failure to reload or restart
will result in mail staying queued, while Postfix daemons log
warning messages about unexpected attributes.
[Feature 20140715] Support for Email Address Internationalization
(EAI) as defined in RFC 6531..6533. This supports UTF-8 in SMTP/LMTP
sender addresses, recipient addresses, and message header values.
The implementation is based on initial work by Arnt Gulbrandsen
that was funded by CNNIC.
See SMTPUTF8_README for a description of Postfix SMTPUTF8 support.
[Feature 20150112] UTF-8 Casefolding support for Postfix lookup
tables and matchlists (mydestination, relay_domains, etc.). This
is enabled only with "smtpuf8 = yes".
[Feature 20150112] With smtputf8_enable=yes, SMTP commands with
UTF-8 syntax errors are rejected, table lookup results with invalid
UTF-8 syntax are handled as configuration errors, and UTF-8 syntax
errors in policy server replies result in execution of the policy
server's default action.
Major changes - tls support
---------------------------
(see "Major changes - delivery status notifications" above for
turning 4XX soft errors into 5XX bounces when a remote SMTP server
does not offer STARTTLS support).
[Feature 20140209] the Postfix SMTP client now also falls back to
plaintext when TLS fails AFTER the TLS protocol handshake.
[Feature 20140218] The Postfix SMTP client now requires that a queue
file is older than $minimal_backoff_time, before falling back from
failed TLS to plaintext (both during or after the TLS handshake).
[Feature 20141021] Per IETF TLS WG consensus, the tls_session_ticket_cipher
default setting was changed from aes-128-cbc to aes-256-cbc.
[Feature 20150116] TLS wrappermode support in the Postfix smtp(8)
client (new smtp_tls_wrappermode parameter) and in posttls-finger(1)
(new -w option). There still is life in that deprecated protocol,
and people should not have to jump hoops with stunnel.
* test/btyacc/expr.oxout.error, test/btyacc/expr.oxout.output, test/btyacc/expr.oxout.tab.c, test/btyacc/expr.oxout.tab.h, test/yacc/expr.oxout.error, test/yacc/expr.oxout.output, test/yacc/expr.oxout.tab.c, test/yacc/expr.oxout.tab.h:
RCS_BASE
* package/debian/copyright: update copyright
* reader.c, defs.h, main.c:
avoid using regex.h since some low-end platforms do not have this
* test/expr.oxout.y: RCS_BASE
* configure: regen
* aclocal.m4: quiet a strict gcc warning in CF_MKSTEMP
2017-02-01 Tom.Shields
* main.c, reader.c, defs.h:
process #line directives, like bison and flex
2017-02-01 Thomas E. Dickey <dickey@invisible-island.net>
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
bump
2016-12-31 Thomas E. Dickey <dickey@invisible-island.net>
* config.guess, config.sub: 2017-01-01
2016-12-02 Thomas E. Dickey <dickey@invisible-island.net>
* test/btyacc/quote_calc4-s.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/rename_debug.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, btyaccpar.c:
regen
* btyaccpar.skel: changes from NetBSD
+ use YYINT rather than short in btyaccpar.skel
(some of this had already been done by Tom Shields)
+ remove some casts of malloc/realloc
* yaccpar.c, yaccpar.skel, output.c: changes from NetBSD
- Add some more bison stuff to make the mesa/gallium parser work:
%initial-action (add missing source struct member in location)
%debug (unimplemented)
%error-verbose (unimplemented)
This changes some existing code:
+ yylloc is now a pointer, so
+ the first parameter to YYERROR_DECL() is a pointer
+ struct YYLTYPE now has a "source" field
* test/btyacc/btyacc_demo.tab.h, test/btyacc/code_calc.tab.c, test/btyacc/code_error.tab.c, test/btyacc/err_inherit4.tab.h:
regen
* btyaccpar.c, btyaccpar.skel, reader.c: changes from NetBSD
- Add some more bison stuff to make the mesa/gallium parser work:
%initial-action (add missing source struct member in location)
%debug (unimplemented)
%error-verbose (unimplemented)
This changes some existing code:
+ yylloc is now a pointer, so
+ the first parameter to YYERROR_DECL() is a pointer
+ struct YYLTYPE now has a "source" field
* reader.c:
fix from NetBSD: correct off-by-one when adding a null in copy_param()
* reader.c: adapted from NetBSD
- Convert *most* error fingerprints to:
-unterminated_arglist(int a_lineno, char *a_line, char *a_cptr)
+unterminated_arglist(const struct ainfo *a)
- Cast new <ctype.h> args to unsigned char
* defs.h: changes from NetBSD
- Add some more bison stuff to make the mesa/gallium parser work:
%initial-action (add missing source struct member in location)
%debug (unimplemented)
%error-verbose (unimplemented)
This changes some existing code:
+ yylloc is now a pointer, so
+ the first parameter to YYERROR_DECL() is a pointer
+ struct YYLTYPE now has a "source" field
* defs.h: adapted from NetBSD
- Convert *most* error fingerprints to:
-unterminated_arglist(int a_lineno, char *a_line, char *a_cptr)
+unterminated_arglist(const struct ainfo *a)
- Cast new <ctype.h> args to unsigned char
* main.c: changes from NetBSD
- Add some more bison stuff to make the mesa/gallium parser work:
%initial-action (add missing source struct member in location)
%debug (unimplemented)
%error-verbose (unimplemented)
This changes some existing code:
+ yylloc is now a pointer, so
+ the first parameter to YYERROR_DECL() is a pointer
+ struct YYLTYPE now has a "source" field
* error.c: adapted from NetBSD
- Convert *most* error fingerprints to:
-unterminated_arglist(int a_lineno, char *a_line, char *a_cptr)
+unterminated_arglist(const struct ainfo *a)
- Cast new <ctype.h> args to unsigned char
* mstring.c: adapted change from NetBSD to add casts for ctype macros
* test/btyacc/btyacc_demo.tab.h, test/btyacc/err_inherit4.tab.h: regen
* output.c: reorder to eliminate a forward-reference
2016-12-02 Tom.Shields
* output.c:
modify output to enable compilation of a lexer generated by flex (using
"%option bison-bridge" and "%option bison-locations") to be used with a parser
generated by b(t)yacc (using directives "%locations" and "%pure-parser").
2016-12-02 Thomas E. Dickey <dickey@invisible-island.net>
* configure: regen
* aclocal.m4: Improved autoconf macros
CF_CC_ENV_FLAGS
+ improve split between compiler and options, prompted by report where user
had "ccache" before the compiler
+ leave non-preprocessor options in "$CC" (but still copy them to "$CFLAGS"
since that's where they should be)
CF_GNU_SOURCE,v
+ recent glibc (Debian 2.23-4 for example) has misordered ifdef/checks for new
symbol _DEFAULT_SOURCE, producing warning messages when only _GNU_SOURCE is
defined. Add a followup check to define _DEFAULT_SOURCE.
CF_XOPEN_SOURCE
+ add "uclinux" to list of Linux's (patch by Yann E. Morin)
+ use _GNU_SOURCE for cygwin headers
+ build-fixes for OS/2
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
bump
2016-11-20 Thomas E. Dickey <dickey@invisible-island.net>
* config.sub: 2016-11-19
* config.guess: 2016-10-02
2016-06-06 Thomas E. Dickey <dickey@invisible-island.net>
* configure: regen
* aclocal.m4: improved autoconf macros:
CF_CC_ENV_FLAGS - don't limit the check to -I, -U and -D options, since the
added options can include various compiler options before and after
preprocessor options.
CF_PROG_LINT - add cpplint to programs to use; drop ad hoc tdlint and alint.
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
bump
* lalr.c: indented
* btyaccpar.c: regen
* skel2c:
adjust whitespace so that generated skeleton will follow the same format
as other code
* mkpar.c, verbose.c, lr0.c, reader.c, error.c, output.c: indented
* reader.c: fix two compiler warnings
* test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/rename_debug.c, btyaccpar.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/ok_syntax1.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/rename_debug.c, yaccpar.c:
regen
2016-06-06 Tom.Shields
* btyaccpar.skel, yaccpar.skel:
small fix for an edge case of initialized data in Chris Dodd's btyacc changes:
"Avoid crash when input pops up an Action error at the first token"
2016-06-01 Thomas E. Dickey <dickey@invisible-island.net>
* test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/err_syntax24.error, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/ok_syntax1.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_calc.tab.c, test/yacc/code_calc.tab.h, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/rename_debug.c, yaccpar.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/err_syntax13.tab.c, test/btyacc/err_syntax14.tab.c, test/btyacc/err_syntax15.tab.c, test/btyacc/err_syntax16.tab.c, test/btyacc/err_syntax17.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax19.tab.c, test/btyacc/err_syntax2.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/err_syntax21.tab.c, test/btyacc/err_syntax22.tab.c, test/btyacc/err_syntax23.tab.c, test/btyacc/err_syntax24.error, test/btyacc/err_syntax24.tab.c, test/btyacc/err_syntax25.tab.c, test/btyacc/err_syntax26.tab.c, test/btyacc/err_syntax27.tab.c, test/btyacc/err_syntax3.tab.c, test/btyacc/err_syntax4.tab.c, test/btyacc/err_syntax5.tab.c, test/btyacc/err_syntax6.tab.c, test/btyacc/err_syntax7.tab.c, test/btyacc/err_syntax7a.tab.c, test/btyacc/err_syntax7b.tab.c, test/btyacc/err_syntax8.tab.c, test/btyacc/err_syntax8a.tab.c, test/btyacc/err_syntax9.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.output, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.error, test/btyacc/btyacc_demo.output, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_calc.tab.c, test/btyacc/code_calc.tab.h, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit1.tab.c, test/btyacc/err_inherit2.tab.c, test/btyacc/err_inherit3.output, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.output, test/btyacc/err_inherit4.tab.c, test/btyacc/err_inherit5.tab.c, test/btyacc/err_syntax1.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/rename_debug.c, btyaccpar.c:
regen
2016-06-01 Tom.Shields
* btyaccpar.skel, defs.h, error.c, output.c, reader.c, test/code_calc.y, test/err_inherit4.y, test/run_make.sh, yaccpar.skel:
fixes for issues in btyacc (report by Francis Andre):
+ correction to the placement of the #line directive for a %union specification
+ recovery of a set of casts originally added into btyaccpar.c rather than into
btyaccpar.skel, and so are lost whenever building from scratch
+ Chris Dodd's btyacc improved handling of inherited attributes to eliminate
implicit empty copy rules that are not necessary, and thereby avoiding the
introduction of extra parsing ambiguity
+ Chris Dodd's added support for @-N syntax to reference inherited position
information
+ correction to bad interaction between %token-table and YYDEBUG, where YYDEBUG
was required to be defined in order to compile the generated code
+ correction to yyname[] access in code included with YYDEBUG defined for
single character symbols not recognized (e.g., input containing '&' character
where grammar doesn't define that as a symbol) - map to existing
"illegal-symbol" entry in byname[]
+ fixes to test/run_make.sh: skip test-err_* files; in the bison test phase
skip additional files that contain features not supported by bison and
inhibit new bison warning messages
+ minor changes to btyaccpar.skel & yaccpar.skel so they are more similar in
their commonality; makes it easier to maintain the pair of files using
vimdiff
+ changes to a couple of test cases for coverage of #3, #4 and #5 above
2016-06-01 Thomas E. Dickey <dickey@invisible-island.net>
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
bump
2016-03-24 Thomas E. Dickey <dickey@invisible-island.net>
* reader.c: unused variable
* package/pkgsrc/Makefile, package/debian/copyright: bump
2016-03-24 Jung-uk.Kim
* main.c:
correct logic for finding output suffix in the "-o" option, which matched
the first occurrence of ".c" in the name in 2005-08-13 changes rather than
at the end of the filename (patch by Jung-uk Kim)
2016-03-24 Thomas E. Dickey <dickey@invisible-island.net>
* aclocal.m4:
update CF_WITH_MAN2HTML to use configured shell rather than /bin/sh
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
bump
2016-01-25 Thomas E. Dickey <dickey@invisible-island.net>
* config.guess, config.sub: 2016-01-01
* release 5.30
2017-02-07 23:27 Christos Zoulas <christos@zoulas.com>
* If we exceeded the offset in a search return no match
(Christoph Biedl)
* Be more lenient on corrupt CDF files (Christoph Biedl)
2017-02-04 16:46 Christos Zoulas <christos@zoulas.com>
* pacify ubsan sign extension (oss-fuzz/524)
2017-02-01 12:42 Christos Zoulas <christos@zoulas.com>
* off by one in cdf parsing (PR/593)
* report debugging sections in elf (PR/591)
2016-11-06 10:52 Christos Zoulas <christos@zoulas.com>
* Allow @@@ in extensions
* Add missing overflow check in der magic (Jonas Wagner)
2016-10-25 10:40 Christos Zoulas <christos@zoulas.com>
* release 5.29
2016-10-24 11:20 Christos Zoulas <christos@zoulas.com>
* der getlength overflow (Jonas Wagner)
* multiple magic file load failure (Christoph Biedl)
2016-10-17 11:26 Christos Zoulas <christos@zoulas.com>
* CDF parsing improvements (Guy Helmer)
2016-07-20 7:26 Christos Zoulas <christos@zoulas.com>
* Add support for signed indirect offsets
2016-07-18 7:41 Christos Zoulas <christos@zoulas.com>
* cat /dev/null | file - should print empty (Christoph Biedl)
2016-07-05 15:20 Christos Zoulas <christos@zoulas.com>
* Bump string size from 64 to 96.
2016-06-13 20:20 Christos Zoulas <christos@zoulas.com>
* PR/556: Fix separators on annotations.
2016-06-13 19:40 Christos Zoulas <christos@zoulas.com>
* release 5.28
* fix leak on allocation failure
2016-06-01 1:20 Christos Zoulas <christos@zoulas.com>
* PR/555: Avoid overflow for offset > nbytes
* PR/550: Segv on DER parsing:
- use the correct variable for length
- set offset to 0 on failure.
2016-05-13 12:00 Christos Zoulas <christos@zoulas.com>
* release 5.27
2016-04-18 9:35 Christos Zoulas <christos@zoulas.com>
* Errors comparing DER entries or computing offsets
are just indications of malformed non-DER files.
Don't print them.
* Offset comparison was off-by-one.
* Fix compression code (Werner Fink)
* Put new bytes constant in the right file (not the generated one)
2016-04-16 18:34 Christos Zoulas <christos@zoulas.com>
* release 5.26
2016-03-31 13:50 Christos Zoulas <christos@zoulas.com>
* make the number of bytes read from files configurable.
2016-03-21 13:40 Christos Zoulas <christos@zoulas.com>
* Add bounds checks for DER code (discovered by Thomas Jarosch)
* Change indirect recursion limit to indirect use count and
bump from 15 to 50 to prevent abuse.
2016-03-13 20:39 Christos Zoulas <christos@zoulas.com>
* Add -00 which prints filename\0description\0
2016-03-01 13:28 Christos Zoulas <christos@zoulas.com>
* Fix ID3 indirect parsing
2016-01-19 10:18 Christos Zoulas <christos@zoulas.com>
* add DER parsing capability
2015-11-13 10:35 Christos Zoulas <christos@zoulas.com>
* provide dprintf(3) for the OS's that don't have it.
2015-11-11 16:25 Christos Zoulas <christos@zoulas.com>
* redo the compression code report decompression errors
2015-11-10 23:25 Christos Zoulas <christos@zoulas.com>
* REG_STARTEND code is not working as expected, delete it.
2015-11-09 16:05 Christos Zoulas <christos@zoulas.com>
* Add zlib support if we have it.
2015-11-05 11:22 Christos Zoulas <christos@zoulas.com>
* PR/492: compression forking was broken with magic_buffer.
2015-09-16 9:50 Christos Zoulas <christos@zoulas.com>
* release 5.25
2015-09-11 13:25 Christos Zoulas <christos@zoulas.com>
* add a limit to the length of regex searches
2015-09-08 9:50 Christos Zoulas <christos@zoulas.com>
* fix problems with --parameter (Christoph Biedl)
2015-07-11 10:35 Christos Zoulas <christos@zoulas.com>
* Windows fixes PR/466 (Jason Hood)
2015-07-09 10:35 Christos Zoulas <christos@zoulas.com>
* release 5.24
2015-06-11 8:52 Christos Zoulas <christos@zoulas.com>
* redo long option encoding to fix off-by-one in 5.23
2015-06-10 13:50 Christos Zoulas <christos@zoulas.com>
* release 5.23
2015-06-09 16:10 Christos Zoulas <christos@zoulas.com>
* Fix issue with regex range for magic with offset
* Always return true from mget with USE (success to mget not match
indication). Fixes mime evaluation after USE magic
* PR/459: Don't insert magic entries to the list if there are parsing
errors for them.
2015-06-03 16:00 Christos Zoulas <christos@zoulas.com>
* PR/455: Add utf-7 encoding
2015-06-03 14:30 Christos Zoulas <christos@zoulas.com>
* PR/455: Implement -Z, look inside, but don't report on compression
* PR/454: Fix allocation error on bad magic.
2015-05-29 10:30 Christos Zoulas <christos@zoulas.com>
* handle MAGIC_CONTINUE everywhere, not just in softmagic
2015-05-21 14:30 Christos Zoulas <christos@zoulas.com>
* don't print descriptions for NAME types when mime.
2015-04-09 15:59 Christos Zoulas <christos@zoulas.com>
* Add --extension to list the known extensions for this file type
Idea by Andrew J Roazen
2015-02-14 12:23 Christos Zoulas <christos@zoulas.com>
* Bump file search buffer size to 1M.
2015-01-09 14:35 Christos Zoulas <christos@zoulas.com>
* Fix multiple issues with date formats reported by Christoph Biedl:
- T_LOCAL meaning was reversed
- Arithmetic did not work
Also stop adjusting daylight savings for gmt printing.
2015-01-05 13:00 Christos Zoulas <christos@zoulas.com>
* PR/411: Fix memory corruption from corrupt cdf file.
4558. [bug] Synthesised CNAME before matching DNAME was still
being cached when it should have been. [RT #44318]
4557. [security] Combining dns64 and rpz can result in dereferencing
a NULL pointer (read). (CVE-2017-3135) [RT#44434]
libpthread_dbg(3) is a remnant library from the M:N thread model
(pre-NetBSD-5.0) API to introspect threads within a process and for use
of debuggers.
Currently in the 1:1 model it's not used in GDB neither in LLDB and it's
not either planned to be used. It's current function to read pthread_t
structures is realizable within a regular debugger capable to
instrospect objects within a tracee (GDB, LLDB...).
pthread_dbg(3) is going to be removed from the base distribution and moved
to pkgsrc.
Patch reviewed by <christos>
Sponsored by <The NetBSD Foundation>
libpthread_dbg(3) is a remnant library from the M:N thread model
(pre-NetBSD-5.0) API to introspect threads within a process and for use
of debuggers.
Currently in the 1:1 model it's not used in GDB neither in LLDB and it's
not either planned to be used. It's current function to read pthread_t
structures is realizable within a regular debugger capable to
instrospect objects within a tracee (GDB, LLDB...).
pthread_dbg(3) is going to be removed from the base distribution and moved
to pkgsrc.
Patch reviewed by <christos>
Sponsored by <The NetBSD Foundation>
This update fixes the following vulnerabilities:
CVE-2016-7922 CVE-2016-7923 CVE-2016-7924 CVE-2016-7925 CVE-2016-7926
CVE-2016-7927 CVE-2016-7928 CVE-2016-7929 CVE-2016-7930 CVE-2016-7931
CVE-2016-7932 CVE-2016-7933 CVE-2016-7934 CVE-2016-7935 CVE-2016-7936
CVE-2016-7937 CVE-2016-7938 CVE-2016-7939 CVE-2016-7940 CVE-2016-7973
CVE-2016-7974 CVE-2016-7975 CVE-2016-7983 CVE-2016-7984 CVE-2016-7985
CVE-2016-7986 CVE-2016-7992 CVE-2016-7993 CVE-2016-8574 CVE-2016-8575
CVE-2017-5202 CVE-2017-5203 CVE-2017-5204 CVE-2017-5205 CVE-2017-5341
CVE-2017-5342 CVE-2017-5482 CVE-2017-5483 CVE-2017-5484 CVE-2017-5485
CVE-2017-5486 (all buffer overflows in various parts of tcpdump)
Upstream Changelog:
General updates:
Improve separation frontend/backend (tcpdump/libnetdissect)
Don't require IPv6 library support in order to support IPv6 addresses
Introduce data types to use for integral values in packet structures
Fix display of timestamps with -tt, -ttt and -ttttt options
Fix some heap overflows found with American Fuzzy Lop by Hanno Boeck and others
(More information in the log with CVE-2016-* and CVE-2017-*)
Change the way protocols print link-layer addresses (Fix heap overflows
in CALM-FAST and GeoNetworking printers)
Pass correct caplen value to ether_print() and some other functions
Fix lookup_nsap() to match what isonsap_string() expects
Clean up relative time stamp printing (Fix an array overflow)
Fix some alignment issues with GCC on Solaris 10 SPARC
Add some ND_TTEST_/ND_TCHECK_ macros to simplify writing bounds checks
Add a fn_printztn() which returns the number of bytes processed
Add nd_init() and nd_cleanup() functions. Improve libsmi support
Add CONTRIBUTING file
Add a summary comment in all printers
Compile with more warning options in devel mode if supported (-Wcast-qual, ...)
Fix some leaks found by Valgrind/Memcheck
Fix a bunch of de-constifications
Squelch some Coverity warnings and some compiler warnings
Update Coverity and Travis-CI setup
Update Visual Studio files
Frontend:
Fix capsicum support to work with zerocopy buffers in bpf
Try opening interfaces by name first, then by name-as-index
Work around pcap_create() failures fetching time stamp type lists
Fix a segmentation fault with 'tcpdump -J'
Improve addrtostr6() bounds checking
Add exit_tcpdump() function
Don't drop CAP_SYS_CHROOT before chrooting
Fixes issue where statistics not reported when -G and -W options used
New printers supporting:
Generic Protocol Extension for VXLAN (VXLAN-GPE)
Home Networking Control Protocol (HNCP), RFCs 7787 and 7788
Locator/Identifier Separation Protocol (LISP), type 3 and type 4 packets
Marvell Extended Distributed Switch Architecture header (MEDSA)
Network Service Header (NSH)
REdis Serialization Protocol (RESP)
Updated printers:
802.11: Beginnings of 11ac radiotap support
802.11: Check the Protected bit for management frames
802.11: Do bounds checking on last_presentp before dereferencing it (Fix a heap overflow)
802.11: Fix the radiotap printer to handle the special bits correctly
802.11: If we have the MCS field, it's 11n
802.11: Only print unknown frame type or subtype messages once
802.11: Radiotap dBm values get printed as dB; Update a test output accordingly
802.11: Source and destination addresses were backwards
AH: Add a bounds check
AH: Report to our caller that dissection failed if a bounds check fails
AP1394: Print src > dst, not dst > src
ARP: Don't assume the target hardware address is <= 6 octets long (Fix a heap overflow)
ATALK: Add bounds and length checks (Fix heap overflows)
ATM: Add some bounds checks (Fix a heap overflow)
ATM: Fix an incorrect bounds check
BFD: Update specification from draft to RFC 5880
BFD: Update to print optional authentication field
BGP: Add decoding of ADD-PATH capability
BGP: Add support for the AIGP attribute (RFC7311)
BGP: Print LARGE_COMMUNITY Path Attribute
BGP: Update BGP numbers from IANA; Print minor values for FSM notification
BOOTP: Add a bounds check
Babel: Add decoder for source-specific extension
CDP: Filter out non-printable characters
CFM: Fixes to match the IEEE standard, additional bounds and length checks
CSLIP: Add more bounds checks (Fix a heap overflow)
ClassicalIPoATM: Add a bounds check on LLC+SNAP header (Fix a heap overflow)
DHCP: Fix MUDURL and TZ options
DHCPv6: Process MUDURL and TZ options
DHCPv6: Update Status Codes with RFCs/IANA names
DNS: Represent the "DNSSEC OK" bit as "DO" instead of "OK". Add a test case
DTP: Improve packet integrity checks
EGP: Fix bounds checks
ESP: Don't use OpenSSL_add_all_algorithms() in OpenSSL 1.1.0 or later
ESP: Handle OpenSSL 1.1.x
Ethernet: Add some bounds checking before calling isoclns_print (Fix a heap overflow)
Ethernet: Print the Length/Type field as length when needed
FDDI: Fix -e output for FDDI
FR: Add some packet-length checks and improve Q.933 printing (Fix heap overflows)
GRE: Add some bounds checks (Fix heap overflows)
Geneve: Fix error message with invalid option length; Update list option classes
HNCP: Fix incorrect time interval format. Fix handling of IPv4 prefixes
ICMP6: Fetch a 32-bit big-endian quantity with EXTRACT_32BITS()
ICMP6: dagid is always an IPv6 address, not an opaque 128-bit string
IGMP: Add a length check
IP: Add a bounds check (Fix a heap overflow)
IP: Check before fetching the protocol version (Fix a heap overflow)
IP: Don't try to dissect if IP version != 4 (Fix a heap overflow)
IP: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP
IPComp: Check whether we have the CPI before we fetch it (Fix a heap overflow)
IPoFC: Fix -e output (IP-over-Fibre Channel)
IPv6: Don't overwrite the destination IPv6 address for routing headers
IPv6: Fix header printing
IPv6: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP
ISAKMP: Clean up parsing of IKEv2 Security Associations
ISOCLNS/IS-IS: Add support for Purge Originator Identifier (RFC6232) and test cases
ISOCLNS/IS-IS: Don't overwrite packet data when checking the signature
ISOCLNS/IS-IS: Filter out non-printable characters
ISOCLNS/IS-IS: Fix segmentation faults
ISOCLNS/IS-IS: Have signature_verify() do the copying and clearing
ISOCLNS: Add some bounds checks
Juniper: Make sure a Juniper header TLV isn't bigger than what's left in the packet (Fix a heap overflow)
LLC/SNAP: With -e, print the LLC header before the SNAP header; without it, cut the SNAP header
LLC: Add a bounds check (Fix a heap overflow)
LLC: Clean up printing of LLC packets
LLC: Fix the printing of RFC 948-style IP packets
LLC: Skip the LLC and SNAP headers with -x for 802.11 and some other protocols
LLDP: Implement IANA OUI and LLDP MUD option
MPLS LSP ping: Update printing for RFC 4379, bug fixes, more bounds checks
MPLS: "length" is now the *remaining* packet length
MPLS: Add bounds and length checks (Fix a heap overflow)
NFS: Add a test that makes unaligned accesses
NFS: Don't assume the ONC RPC header is nicely aligned
NFS: Don't overflow the Opaque_Handle buffer (Fix a segmentation fault)
NFS: Don't run past the end of an NFSv3 file handle
OLSR: Add a test to cover a HNA sgw case
OLSR: Fix 'Advertised networks' count
OLSR: Fix printing of smart-gateway HNAs in IPv4
OSPF: Add a bounds check for the Hello packet options
OSPF: Do more bounds checking
OSPF: Fix a segmentation fault
OSPF: Fix printing 'ospf_topology_values' default
OTV: Add missing bounds checks
PGM: Print the formatted IP address, not the raw binary address, as a string
PIM: Add some bounds checking (Fix a heap overflow)
PIMv2: Fix checksumming of Register messages
PPI: Pass an adjusted struct pcap_pkthdr to the sub-printer
PPP: Add some bounds checks (Fix a heap overflow)
PPP: Report invalid PAP AACK/ANAK packets
Q.933: Add a missing bounds check
RADIUS: Add Value 13 "VLAN" to Tunnel-Type attribute
RADIUS: Filter out non-printable characters
RADIUS: Translate UDP/1700 as RADIUS
RESP: Do better checking of RESP packets
RPKI-RTR: Add a return value check for "fn_printn" call
RPKI-RTR: Remove printing when truncated condition already detected
RPL: Fix 'Consistency Check' control code
RPL: Fix suboption print
RSVP: An INTEGRITY object in a submessage covers only the submessage
RSVP: Fix an infinite loop; Add bounds and length checks
RSVP: Fix some if statements missing brackets
RSVP: Have signature_verify() do the copying and clearing
RTCP: Add some bounds checks
RTP: Add some bounds checks, fix two segmentation faults
SCTP: Do more bounds checking
SFLOW: Fix bounds checking
SLOW: Fix bugs, add checks
SMB: Before fetching the flags2 field, make sure we have it
SMB: Do bounds checks on NBNS resource types and resource data lengths
SNMP: Clean up the "have libsmi but no modules loaded" case
SNMP: Clean up the object abbreviation list and fix the code to match them
SNMP: Do bounds checks when printing character and octet strings
SNMP: Improve ASN.1 bounds checks
SNMP: More bounds and length checks
STP: Add a bunch of bounds checks, and fix some printing (Fix heap overflows)
STP: Filter out non-printable characters
TCP: Add bounds and length checks for packets with TCP option 20
TCP: Correct TCP option Kind value for TCP Auth and add SCPS-TP
TCP: Fix two bounds checks (Fix heap overflows)
TCP: Make sure we have the data offset field before fetching it (Fix a heap overflow)
TCP: Put TCP-AO option decoding right
TFTP: Don't use strchr() to scan packet data (Fix a heap overflow)
Telnet: Add some bounds checks
TokenRing: Fix -e output
UDLD: Fix an infinite loop
UDP: Add a bounds check (Fix a heap overflow)
UDP: Check against the packet length first
UDP: Don't do the DDP-over-UDP heuristic check up front
VAT: Add some bounds checks
VTP: Add a test on Mgmt Domain Name length
VTP: Add bounds checks and filter out non-printable characters
VXLAN: Add a bound check and a test case
ZeroMQ: Fix an infinite loop
Release 2.2.0 Tue June 21 2016
Security fixes:
#537 CVE-2016-0718 -- Fix crash on malformed input
CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
CVE-2015-2716 introduced with Expat 2.1.1
#499 CVE-2016-5300 -- Use more entropy for hash initialization
than the original fix to CVE-2012-0876
#519 CVE-2012-6702 -- Resolve troublesome internal call to srand
that was introduced with Expat 2.1.0
when addressing CVE-2012-0876 (issue #496)
Bug fixes:
Fix uninitialized reads of size 1
(e.g. in little2_updatePosition)
Fix detection of UTF-8 character boundaries
Other changes:
#532 Fix compilation for Visual Studio 2010 (keyword "C99")
Autotools: Resolve use of "$<" to better support bmake
Autotools: Add QA script "qa.sh" (and make target "qa")
Autotools: Respect CXXFLAGS if given
Autotools: Fix "make run-xmltest"
Autotools: Have "make run-xmltest" check for expected output
p90 CMake: Fix static build (BUILD_shared=OFF) on Windows
#536 CMake: Add soversion, support -DNO_SONAME=yes to bypass
#323 CMake: Add suffix "d" to differentiate debug from release
CMake: Define WIN32 with CMake on Windows
Annotate memory allocators for GCC
Address all currently known compile warnings
Make sure that API symbols remain visible despite
-fvisibility=hidden
Remove executable flag from source files
Resolve COMPILED_FROM_DSP in favor of WIN32
introducing since release of software to be recognised. This should hopefully
allow the builds to progress a littles further on systems such as the POWER8
which features a little endian 64-bit PowerPC CPU identified as ppc64le.
Libevent 2.1.8-stable, it contains openssl fixes for resetting fd and using
bufferevent_openssl_filter_new(). vagrant fixes, some build fixes, increased
timeout for some tests (to reduce number of failures due to timing issues),
date in RFC1123 format and running tests in parallel.
There are highlighted changes above.
Build fixes:
o Fix _FILE_OFFSET_BITS redinition (solaris/autotools) (336f3b11 Azat Khuzhin)
o util-internal: fix __func__ redefinition (netbsd) (253e7fa9 Azat Khuzhin)
o Fix signedness differ for iov_base (solaris) (2c62062e Azat Khuzhin)
o evutil_time: include <unistd.h> when there is only sleep()/usleep() (3e75194c Azat Khuzhin)
o http: fix formatter for pritnf for req->ntoread (osx) (1cbf26f6 Azat Khuzhin)
Testing environment:
o Merge branch 'automake-tests-parallel-v4' (*includes ci bits also*) (59e217df Azat Khuzhin)
Vagrant env fixes:
o vagrant/netbsd: missing libtool (9c9be399 Azat Khuzhin)
o vagrant/netbsd: more reliable way of installing packages (36da6877 Azat Khuzhin)
o vagrant/osx: use make instead of gmake (there is no gmake) (f7c70aef Azat Khuzhin)
o vagrant: add centos box (ca591c5b Azat Khuzhin)
Tests:
o test/dns: replace servname since solaris does not have "http" (d6bafbbe Azat Khuzhin)
o test/thread: netbsd is too slow, increase timeout for conditions_simple (3c7422fc Azat Khuzhin)
o test/dns: run async resolving after sync one (to avoid timeouts) (07862531 Azat Khuzhin)
o test/http: turn off some tests that based on backlog filling (falky) (26f416c1 Azat Khuzhin)
Bugfixes:
o Merge branch 'openssl-filter-fixes-v4' (83e0f43b Azat Khuzhin)
o Merge branch 'date-rfc1123' (68def435,4798de6c,4545807d Azat Khuzhin)
o Merge branch 'be-openssl-fd-reset-fix-v2' (86fa0070,32adf434 Azat Khuzhin)
o Merge branch 'openssl-1.1-init-fixes-v2' (18a161f0 Azat Khuzhin)
o Fix incorrect MIME type (23f9a20e johnsonlee)
Trivial fixes:
Documentation updates:
o Update README.md (3821cca1 Breaker)
Changes in version 2.1.7-rc (2 Novemer 2016)
Libevent 2.1.7-rc contains openssl 1.1 support, build fixes, CI improvements
and plus Vagrantfile for testing under multiple OS'es.
Continious Integration:
o Use coveralls.io via travis (9ac000c Azat Khuzhin)
o travis-ci: use container-based infrastructure (7e12e96 Azat Khuzhin)
o travis-ci/osx: fix compiling/linking openssl libraries (9d2f8d4 Azat Khuzhin)
o travis-ci: use gcc-5 (fixes osx|gcc failures) (d7ceae5 Azat Khuzhin)
o Testing with vagrant for 6 OS and cmake+autoconf (9585338 Azat Khuzhin)
o travis-ci/osx: install lcov (e4e099b Azat Khuzhin)
Build Improvements/Fixes:
o Fix cmake -DEVENT__COVERAGE=ON (40fbffc Azat Khuzhin)
o autogen.sh: learn about gmake (9376ac4 Azat Khuzhin)
o autogen.sh: remove all autoconf/automake caches, if any (69cce25 Azat Khuzhin)
o cmake: fix finding python2, and check that it is really 2 (3453c08 Azat Khuzhin)
o cmake: fix CheckFunctionExistsEx/CheckPrototypeDefinition (CMP0054) (43b69b2 Azat Khuzhin)
o cmake: cleanup (dc624ad Zonr Chang)
o cmake/win32: fix running regress, but fixing finding python2 interpreter (bcb990a Azat Khuzhin)
o cmake: use PYTHON_EXECUTABLE to find python2 (a4d044c Azat Khuzhin)
o Merge branch 'force-disable-clockgettime' (83c7cdf Azat Khuzhin)
Code Improvements (core)
o use ev_uint16_t instead of unsigned short for port (e983712 Thomas Bernard)
o Merge branch 'contrib-guide-v2' (b9c5077 Azat Khuzhin)
o poll: Prevent libevent from spinning if POLLNVAL occurs (675974c Tim Hentenaar)
Testing:
o test/regress: cover a polling of invalid fd (cb0df5c Tim Hentenaar)
Code Improvements (bufferevent_openssl)
o Make it build using OpenSSL 1.1.0 (3e9e0a0 Kurt Roeckx)
o Don't call BIO_number_{read|written} on NULL BIOs. (6702da1 Adam Langley)
o Switch from a 512 to 2048-bit RSA key. (f9803a6 Adam Langley)
Trivial fixes:
o Ignore temporary configure files (8fb08ae Azat Khuzhin)
o README.md: fix typo: ar -> are (2361616 Simone Basso)
o be: just a simple mistake, reinclude the <errno.h> (7521664 Seven)
Changes in version 2.1.6-beta (4 July 2016)
Libevent 2.1.6-beta contains mostly bug fixes (evbuffers, evthread, evdns,
bufferevents, core, http, samples), improvements but mostly to fix some
possible issues (EVHTTP_CON_LINGERING_CLOSE), a lot of new unit tests and new
appveyor integration.
Security Fixes (utils)
o evutil_parse_sockaddr_port(): fix buffer overflow (329acc1 Azat Khuzhin)
Security Fixes (evdns)
o evdns: name_parse(): fix remote stack overread (96f64a0 Azat Khuzhin)
o evdns: fix searching empty hostnames (ec65c42 Azat Khuzhin)
New APIs (evdns)
o New function to get address for nameserver. (537177d Nick Mathewson)
New APIs (bufferevents)
o expose bufferevent_incref/decref (with fewer modifications) (1ed6718 Mark Ellzey)
New APIs (internal)
o evdns: export cancel via callbacks in util (like async lib core/extra issues) (8cbe65d Azat Khuzhin)
New APIs/Improvements (http)
o http: take EVHTTP_CON_LINGERING_CLOSE into account for "Expect: 100-Continue" (ac448a7 Azat Khuzhin)
o http: lingering close (like nginx have) for entity-too-large (9fde518 Azat Khuzhin)
o http: read server response even after server closed the connection (680742e Azat Khuzhin)
o http: export evhttp_connection_set_family() (714fc70 Azat Khuzhin)
o http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR (a50f5f0 Azat Khuzhin)
o http: use IP address that we got before (if any) during retrying (54c887d Azat Khuzhin)
Bugfixes (core)
o Fix getaddrinfo under solaris (for multiprotocol case) (40730ae Azat Khuzhin)
o Check for Mac OS X 10.4 kqueue bug properly (df6f99e Mark Mentovai)
o event_reinit: make signals works after fork() without evsig_add() (88640aa Nicholas Marriott)
o event_reinit: always re-init signal's socketpair (ad0c237 Nicholas Marriott)
o Free event queues even for recursive finalizers (7c8d015 Azat Khuzhin)
o Fix checking for make_base_notifiable() (f337296 Azat Khuzhin)
o Set correct socklen for PF_INET6 sockaddr len (3499ad9 Mark Ellzey)
o Fix garbage value in socketpair util function, stdint? (043ae74 Mark Ellzey)
o fix the return value of event_deferred_cb_schedule_ (38cef64 Greg Hazel)
o event_free_debug_globals_locks(): disable lock debugging (e5c87d1 Azat Khuzhin)
o event: call event_disable_debug_mode() in libevent_global_shutdown() (941faae Azat Khuzhin)
o ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR (597c7b2 Azat Khuzhin)
Bugfixes (evthread)
o evthread: fix evthread_setup_global_lock_() for debug-lock with a real-lock case (e4556fc Azat Khuzhin)
o evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown() (ccc5593 Azat Khuzhin)
Bugfixes (evdns)
o evdns: avoid double-free in evdns_base_free() for probing requests (4db15e0 Azat Khuzhin)
o evdns: evdns_base_free(): fix UAF of evdns_base with @fail_requests (00313c5 Azat Khuzhin)
o evdns: evdns_base_free(): free requests before namservers (14f84bb Azat Khuzhin)
o evdns: fix randomize-case by make case-insensitive as required (9c238de Azat Khuzhin)
Bugfixes (bufferevents)
o be_sock: handle readv() returns ECONNREFUSED (freebsd 9.2) (3189eb0 Azat Khuzhin)
o be_filter: avoid data stuck under active watermarks (b627ad8 Eduardo Panisset)
o Fix bufferevent_pair to properly set BEV_EVENT_{READING,WRITING} on flush. (2851889 David Paschich)
o be_openssl: clear all pending errors before SSL_*() calls (38e0f4a Azat Khuzhin)
o be_sock: cancel in-progress dns requests (86dfd2c Azat Khuzhin)
o be_sock: unfreeze buffers on fd changing (255525d Azat Khuzhin)
o be_sock: bufferevent_socket_connect_hostname(): make it thread-safe (809bb39 Azat Khuzhin)
o be_openssl: don't call do_write() directly from outbuf_cb (da52933 Azat Khuzhin)
o be_openssl: use bufferevent_enable() instead of bufferevent_add_event_() (0c66d32 Azat Khuzhin)
o be_openssl: don't add events during bev creation (like be_sock) (f4b6284 Azat Khuzhin)
o Fix lock leak in be_pair_flush() if flush type is BEV_NORMAL (f45d39d Bill Vaughan)
o be_openssl: don't use *_auto() in do_handshake() we can't have fd == -1 there (877280d Azat Khuzhin)
o be_openssl: don't call set_open_callbacks() if fd == -1 (e8a2da9 Azat Khuzhin)
o be_openssl: get rid off hackish "fd_is_set", to fix some corner cases (40b0379 Azat Khuzhin)
o be: we don't need to use getpeername() we we have conn_address (2c271e2 Azat Khuzhin)
o Call underlying bev ctrl SET_FD on filtered bufferevents (c2aa7dc Mark Ellzey)
o be_pair: release shared lock with the latest of bufferevent_pair (92a359e Azat Khuzhin)
Bugfixes (http)
o [Issue #313] set method to ASCII "NULL" if evhttp_method() returns NULL (17cc636 Mark Ellzey)
o evhttp_have_expect(): fix -Wlogical-not-parentheses (24b5214 Azat Khuzhin)
o http: set fd to -1 unconditioally, to avoid leaking of DNS requests (7a4b472 Azat Khuzhin)
o http: avoid leaking of fd in evhttp_connection_free() (f0e1341 Azat Khuzhin)
o http: get fd from be layer during connection reset (4a53c54 Azat Khuzhin)
o http: fix EVHTTP_CON_READ_ON_WRITE_ERROR when it doesn't supported by OS (2ff164a Azat Khuzhin)
o http: do not do function calls under EVUTIL_ASSERT() to fix NDEBUG builds (7c89999 Azat Khuzhin)
o http: fix leaking of response_code_line (8f18a62 Azat Khuzhin)
o http: fix "Expect: 100-continue" client side (0b46b39 Azat Khuzhin)
o http: fix conflicts EVHTTP_CON_AUTOFREE and EVHTTP_CON_REUSE_CONNECTED_ADDR (4dc0979 Azat Khuzhin)
o http: avoid epoll_ctl() on already closed fd (triggers by http/chunk_out) (ab3bc69 Azat Khuzhin)
o http: install timeout for read too during connect for ssl (040000d Azat Khuzhin)
o http: fix evhttp_request_own() by checking EVHTTP_USER_OWNED in more cases (b0d3964 Azat Khuzhin)
o http: fix detecting EOF without write (7ed02ac Azat Khuzhin)
o evhttp: Fix failure to send all output data for POST/PUT requests (24eea0d John Ohl)
o Fix evhttp_uriencode() regression. (c6b1ec1 Mark Ellzey)
o removed unused vars (e94250c Mark Ellzey)
o pointer overflow checks for evhttp_uriencode (72afe4c Zonr Chang)
Bugfixes (evbuffers)
o buffer: fix overflow check in evbuffer_expand_singlechain() (a3f4ccd Azat Khuzhin)
o buffer: evbuffer_add_buffer(): clean empty chains from destination buffer (26fd932 Azat Khuzhin)
o Fix n_add_for_cb in evbuffer_prepend() in case of new buffer required (0abd039 Azat Khuzhin)
o be_filter: actually disable output_filter during processing output (c031215 Simon Perreault)
o evbuffer_add: Use last_with_datap if set, not last. (a8769ef Marcus Sundberg)
o EVBUFFER_PTR_SET -> EVBUFFER_PTR_ADD (8674e4f jer-gentoo)
Bugfixes (evconnlistener)
o listener: unlock lev on error in listener_read_cb() (2a71b33 Azat Khuzhin)
o Fix potential fd leak in listener_read_cb() (a695a72 Mark Ellzey)
Testing
o tests: use waitpid(..., WNOWAIT) to fix failing of main/fork under solaris (43eb56c Azat Khuzhin)
o test: replace sleeping with syncing pair in main/fork (16d220c Azat Khuzhin)
o test/http: do not run tests that based on backlog filling (freebsd) (500b6b7 Azat Khuzhin)
o test/bufferevent/iocp: fix test name for "bufferevent_connect_fail_eventcb" (4410e9d Azat Khuzhin)
o test/ssl: use send()/recv()/EVUTIL_ERR_RW_RETRIABLE()/EVUTIL_SOCKET_ERROR() to fix win32 (a9e8cd6 Azat Khuzhin)
o test/https_basic: increase timeout for complete write (fixes win32) (d5a2f2f Azat Khuzhin)
o test: fix building with --disable-thread-support under win32 (a487706 Azat Khuzhin)
o test/buffer: evbuffer_add_buffer() with empty chains (a272bc4 Azat Khuzhin)
o test/buffer: evbuffer_remove_buffer() with empty chains (prepend) (f0cfa14 Azat Khuzhin)
o test/buffer: evbuffer_remove_buffer() with empty chains (evbuffer_add_buffer()) (2880ce6 Azat Khuzhin)
o test/buffer: cover evbuffer_expand() for overflow (48dab7a Azat Khuzhin)
o test/be_filter: creating test case for data stuck with active watermarks (766194b Eduardo Panisset)
o test/http: avoid using conditionals with omitted operands (fixes VS2015) (2a4bf29 Azat Khuzhin)
o test/http: don't mix declarations and code (fixes -Wdeclaration-after-statement) (aabf1c2 Azat Khuzhin)
o test/buffer: fix leak in test_evbuffer_prepend() (c08d90b Azat Khuzhin)
o test/buffer: avoid errors with --no-fork (reinitialize static vars) (e7d1e39 Azat Khuzhin)
o test/buffer: cover n_add_for_cb when evbuffer_prepend() need to allocate buffer (e77ff41 Azat Khuzhin)
o test/tinytest_macros: add new one tt_nstr_op() (bd19a28 Azat Khuzhin)
o test/bufferevent: check that output_filter disabled during processing output (ae28812 Azat Khuzhin)
o test/listener: regression for missing unlock in listener_read_cb() (7d85651 Azat Khuzhin)
o test/regress: add tests for evbuffer_add() breakage on empty last chain (d5ee739 Marcus Sundberg)
o test/http: fix running some tests sequential (with --no-fork) (bddad71 Azat Khuzhin)
o test/http: localize evhttp server structure (cbc3209 Azat Khuzhin)
o test/dns: regression for empty hostname (d7348ba Azat Khuzhin)
o test/http: fix SERVER_TIMEOUT tests under win32 (d49a658 Azat Khuzhin)
o test/http: add a helper for creating timedout/failed request (376f107 Azat Khuzhin)
o test/http: adopt for C90 (mixed code and declarations) (d02a285 Azat Khuzhin)
o test/http: cover NS timed out during request cancellations separatelly (0c343af Azat Khuzhin)
o test/http: request cancellation with resolving/{conn,write}-timeouts in progress (334340d Azat Khuzhin)
o test/http: exit from the loop in the errorcb to wait cancellation (927ab33 Azat Khuzhin)
o regress_clean_dnsserver(): reset global port vars (351207f Azat Khuzhin)
o test/http: read_on_write_error: fix it for win32 (3b58169 Azat Khuzhin)
o test/http: separate coverage for EVHTTP_CON_READ_ON_WRITE_ERROR (5c2b4c1 Azat Khuzhin)
o test/http: cover "Expect: 100-continue" client-server interaction (31d8116 Azat Khuzhin)
o test/http: *lingering tests shouldn't have "Expect: 100-continue" (ed469ab Azat Khuzhin)
o test: use EVUTIL_SHUT_WR (04fc82f Azat Khuzhin)
o test/http: avoid huge stack allocations to fix win32 builds (3166765 Azat Khuzhin)
o test: http/lingering_close: cover EVHTTP_SERVER_LINGERING_CLOSE (e122ca1 Azat Khuzhin)
o test: http/non_lingering_close: cover ~EVHTTP_SERVER_LINGERING_CLOSE (f41e1b0 Azat Khuzhin)
o test: http/*: update expected HTTP codes for body exceeds `max_body_size` (addf2b9 Azat Khuzhin)
o test: http/data_length_constrains: set EVHTTP_CON_READ_ON_WRITE_ERROR (d38a723 Azat Khuzhin)
o test: increase buffer size for http/data_length_constraints to trigger EPIPE (0792e1e Azat Khuzhin)
o test/tinytest_demo: include <windows.h> for win32 to fix tdm-gcc (f062bbe Azat Khuzhin)
o test/regress: cover event_del() waiting mechanism (5b58b70 Azat Khuzhin)
o test/regress: cover existing signal callbacks and fork() + event_reinit() (ceddc60 Azat Khuzhin)
o test/regress: cover signals after fork() + event_reinit() (b075b81 Azat Khuzhin)
o test/regress: main/fork: rewrite assertions by just removing event in callback (088d8b3 Azat Khuzhin)
o test/dns: check exit code of evdns_getaddrinfo() (0b9d432 Azat Khuzhin)
o test/dns: cover evdns_getaddrinfo() and evdns_base_free() with @fail_requests (4ad3483 Azat Khuzhin)
o test/dns: cover @fail_requests for evdns_base_free() (d6c6fb4 Azat Khuzhin)
o test/dns: more graceful coverage of @fail_requests (123d372 Azat Khuzhin)
o test/ssl: cover busy-loop (i.e. {read,write}-blocked-on-{write,read} stuff) (da0ea7a Azat Khuzhin)
o test/http: write_during_read for https (23c77b6 Azat Khuzhin)
o test/http: connection_fail for https (7ea26f7 Azat Khuzhin)
o test/http: stream_out for https (ac04968 Azat Khuzhin)
o test/http: chunk_out for https (a71ffb9 Azat Khuzhin)
o test/regress: fix ssl-less builds (need to make this prettier) (3160716 Azat Khuzhin)
o test/http: allow dirty shutdown for ssl to fix https_incomplete (1ede326 Azat Khuzhin)
o test/http: https basic (59714b4 Azat Khuzhin)
o test/http: incomplete{,_timeout} for https (615490d Azat Khuzhin)
o test/http: add simplest test for http/https/https_dirty_shutdown (93b19dc Azat Khuzhin)
o test/http: https: retry coverage (7c2d24a Azat Khuzhin)
o test/http: https server support (plus some helpers) (a7088ad Azat Khuzhin)
o test/http: more sanity checks (a27c53c Azat Khuzhin)
o test/ssl: export getkey()/getcert()/get_ssl_ctx()/init_ssl() for https (0c4c387 Azat Khuzhin)
o test/regress_be: basic coverage bufferevent_flush() for pair/sock layers (ad52602 Azat Khuzhin)
o test/regress_be: socket_filter_inactive: check bufferevent after creation (f8081af Azat Khuzhin)
o test/regress_be: cover finalizers from inactive to active queue (337684b Azat Khuzhin)
o test/regress_buffer: fix clang compilation warnings (d8fd4c0 Azat Khuzhin)
o test/regress_http: fix compilation warnings (-Wmissing-field-initializers) (cd422e0 Azat Khuzhin)
o test/regress_dns: fix compilation warnings (-Wmissing-field-initializers/for) (f55db98 Azat Khuzhin)
o tests/regress_dns: cover that randomize-case works case-insensitive (1e8bfbc Azat Khuzhin)
o test: fix bufferevent/bufferevent_pair_release_lock in debug mode (3f749e9 Azat Khuzhin)
o test: fix bufferevent/bufferevent_pair_release_lock for freebsd (79f9ace Azat Khuzhin)
o test/regress_be: bufferevent_enable() shouldn't call eventcb by it's own (a0f308d Azat Khuzhin)
o test/regress_be: introduce fake_listener_create() (37dc9e0 Azat Khuzhin)
o test/regress_http: cover evhttp_request_own() (6f6fa0d Azat Khuzhin)
o test/regress_http: cover write during read (3d15aeb Azat Khuzhin)
o test/regress_http: verify that closecb will be called without multiple write (4be6c70 Azat Khuzhin)
o test/regress: fix bufferevent_pair_release_lock with EVENT_DEBUG_MODE (6ea6655 Azat Khuzhin)
o test/regress_ssl: check events fd/pending after timeout triggered (cdafdf0 Azat Khuzhin)
o test/regress_ssl: cover case when server didn't up (failed with timeout) (74845f1 Azat Khuzhin)
o test/regress_ssl: covert that we can't change fd with underlying (df507af Azat Khuzhin)
o test/regress_ssl: cover that events (read/write) at finish not pending (762edb4 Azat Khuzhin)
o test/regress_ssl: cover fd manipulations (b78a829 Azat Khuzhin)
o test/regress_ssl: convert open_ssl_bufevs() to mask (46bba73 Azat Khuzhin)
o test/regress_ssl: convert client/server to mask too (3455991 Azat Khuzhin)
o test/regress_ssl: cover "allow_dirty_shutdown" (0430327 Azat Khuzhin)
o test/regress_ssl: convert regress_bufferevent_openssl() to bitmask (342e116 Azat Khuzhin)
o tests/regress_ssl: drop duplicated assert (25e56fd Azat Khuzhin)
o test/regress_http: initialize "dns_base" to avoid reading trash (9f0bff3 Azat Khuzhin)
o test/http: cover retrying with saved conn_address by shutting down dns server (f4874d8 Azat Khuzhin)
o be_pair/regress: cover use of shared lock (lock/unlock/free) (a558fcd Azat Khuzhin)
o regress_dns: drop hack for event_debug_map_HT_GROW in leak tests (3540a19 Azat Khuzhin)
Sample code
o Fix memory leak in signal-test.c (666db91 basavesh.as)
o sample/hello-world: exAmple, not eXMple (2d3cd35 kirillDanshin)
o dns-example: allow to set ns from args (df19a97 Azat Khuzhin)
o dns-example: convert to getopt() (32f8592 Azat Khuzhin)
o http-connect: make it win32 compilable (1bf7595 Azat Khuzhin)
o sample/https-client: allow to change path to ca-certificates (fdf713a Azat Khuzhin)
o sample/https-client: check for ERR_remove_thread_state() existence (c4e9d9b Azat Khuzhin)
o sample/https-client: replace ERR_remove_state() by ERR_remove_thread_state() (77ad68a Azat Khuzhin)
o sample/https-client: add -timeout option (4637aa8 Azat Khuzhin)
o sample/https-client: don't try to free uninitialized SSL (f3d7ff5 Azat Khuzhin)
o sample/https-client: graceful exit with freeing memory (to make valgrind happy) (24a1f25 Azat Khuzhin)
o https-client: correctly handle URLs with no path (like "https://host:port") (29a0482 Andrey Skriabin)
o sample/http-connect: don't use assert() to make it work with NDEBUG (6dc71e7 Azat Khuzhin)
o sample/http-connect: made it compatible with C90 (f976d43 Azat Khuzhin)
o sample: add HTTP CONNECT tunnelling example using libevent http layer (1d34498 Azat Khuzhin)
o Update dns-example. (620ff24 Mark Ellzey)
Documentation
o Update README.md (b8ec70c Mark Ellzey)
o Update README.md (80faee9 Mark Ellzey)
o Update README.md (ad4a897 Mark Ellzey)
o Update README.md (a2b2e1e Mark Ellzey)
o Update README.md (0dfa5dc Mark Ellzey)
Code Improvements (evthread)
o evthread: add evthread_get_{lock,condition}_callbacks() helpers (c0b34f6 Azat Khuzhin)
Code Improvements (core)
o util: make @sa const for evutil_socket_connect_() (a8d32c2 Azat Khuzhin)
Code Improvements (http)
o http: assert's that evbuffer_drain() success on connection reset (2185e63 Azat Khuzhin)
o http: introduce evhttp_request_free_() helper (22061ac Azat Khuzhin)
o http: introduce evhttp_is_request_connection_close() helper (6540da3 Azat Khuzhin)
Code Improvements (bufferevents)
o be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op (0ab88c2 Azat Khuzhin)
o be_sock: sanity check in bufferevent_socket_set_conn_address() (eedbeff Azat Khuzhin)
o be: replace sockaddr_storage with sockaddr_in6 for conn_address (3889612 Azat Khuzhin)
o be: replace conn_address by full struct instead of pointer (e5615aa Azat Khuzhin)
o bufferevent: move conn_address out from http into bufferevent (8bb3842 Azat Khuzhin)
o be: make @sa const for bufferevent_socket_connect() (dc33c78 Azat Khuzhin)
Cleanups (core)
o Refactoring conditional directives that break parts of statements. (4b41eeb lzmths)
o epoll: introduce PRINT_CHANGES() macro to avoid copy-pasting (a1b142b Azat Khuzhin)
o tab (6e7a580 Greg Hazel)
Cleanups (evbuffers)
o buffer_compat: fix comment -- we have EVBUFFER_EOL_ANY not EOL_STYLE_ANY (575ff67 Azat Khuzhin)
Cleanups (bufferevents)
o be_sock: evutil_getaddrinfo_async_() always return 0 (dbff101 Azat Khuzhin)
o be_sock: drop be_sock_add() macro (useless and debug unfriendly) (fad5fe2 Azat Khuzhin)
o be: introduce bufferevent_generic_adj_existing_timeouts_() (3c1f58f Azat Khuzhin)
o be: add_event: use evutil_timerisset() (a96b73b Azat Khuzhin)
o be_openssl: introduce be_openssl_auto_fd() helper (2a8a711 Azat Khuzhin)
o be_openssl: introduce set_open_callbacks_auto() (510da71 Azat Khuzhin)
Cleanups (http)
o http: make fallback for EVHTTP_CON_READ_ON_WRITE_ERROR more cleaner (d405492 Azat Khuzhin)
o http: coding style issue (365f181 Azat Khuzhin)
Cleanups (evdns)
o evnds: inline TEST_NAME macro to make debuggin easier (0c615f4 Azat Khuzhin)
Portability Fixes
o [#372] check for errno.h (3031617 Mark Ellzey)
o Fixed Unicode issue in error messages. (e8b7895 Mattes D)
o Assume that ke_udata is an integer type on CloudABI. (5602e45 Ed Schouten)
o Add missing include of <netinet/in.h>. (b2c68bc Ed Schouten)
o Include <sys/ioctl.h>, <sys/resource.h> and <sys/wait.h> optionally. (c1404b5 Ed Schouten)
o Test against SO_REUSEADDR (along with _WIN32). (ce1776c Ed Schouten)
o Always define missing TAILQ functions from sys/queue.h (2828bdb Christopher Wiley)
o Don't use BSD u_* types. (fd36647 Ed Schouten)
o Remove BSD-ism: TIMEVAL_TO_TIMESPEC(). (193c7de Ed Schouten)
o be: include all variations of headers for sockaddr_in6 struct (c212291 Azat Khuzhin)
o be: fix sockaddr_in6 type definition for win32 (c42bc6b Azat Khuzhin)
Continious Integration:
o travis: split long lines, and make it cleaner (685a6a1 Azat Khuzhin)
o travis: fix autotools on osx by reinstalling libtool (088ea5e Azat Khuzhin)
o appveyor/autotools: link with openssl by passing LDFLAGS/CFLAGS (6fcfa25 Azat Khuzhin)
o appveyor: image already had openssl installed (4634b85 Azat Khuzhin)
o appveyor: check -DUNICODE -D_UNICODE according to ReleaseChecklist (cmake only) (e9acc44 Azat Khuzhin)
o appveyor: ignore failure of mingw-get (1810857 Azat Khuzhin)
o appveyor: drop shallow_clone, since we use tags for detecting version in cmake (ac90133 Azat Khuzhin)
o appveyor: support cmake & autotools using build matrix (like travis-ci has) (8f95015 Azat Khuzhin)
o travis-ci/osx: relink gcc/g++ instead of clang (481481d Azat Khuzhin)
o travis-ci: enable multi-os mode (osx, linux) (79917e4 Azat Khuzhin)
o travis-ci: increase matrix (--disable-foo) (59649f7 Azat Khuzhin)
o travis-ci: adjust alignment (c8be339 Azat Khuzhin)
o travis: add builds without debug mode into matrix (3e56da2 Azat Khuzhin)
o test: run regress with EVENT_DEBUG_MODE=1 and without (cf2cf2a Azat Khuzhin)
o Update travis config for status updates (37453ab Mark Ellzey)
o Use autotools for appveyor until cmake is fixed. (1cc2e29 Mark Ellzey)
o Fix the link for appveyor OpenSSL installer (WIN32) (107d565 Mark Ellzey)
o Forgot to install OpenSSL for appveyor (26164a5 Joakim Söderberg)
o Add support for appveyor.com windows CI (5f89c37 Joakim Söderberg)
Build Improvements/Fixes:
o evutil: mark ai_find_protocol() static (prototype-less) (5a157c8 Azat Khuzhin)
o cmake/solaris: set CMAKE_REQUIRED_LIBRARIES to fix functions detections (dc95823 Azat Khuzhin)
o cmake/solaris: fix building (link with socket,nsl) (050bfc7 Azat Khuzhin)
o cmake: check for ZLIB_INCLUDE_DIR, since we can have only library without headers (c4dfb93 Azat Khuzhin)
o autotools/win32: fix searching ssl library (671a24f Azat Khuzhin)
o cmake/win32: do not compile regress_thread on -DEVENT__DISABLE_THREAD_SUPPORT=ON (de0c196 Azat Khuzhin)
o cmake/win32: do not compile evthread_win32 on -DEVENT__DISABLE_THREAD_SUPPORT=ON (ecb0ec8 Azat Khuzhin)
o cmake: fix -DEVENT__ENABLE_VERBOSE_DEBUG (typo on -DUSE_DEBUG) (e35f224 Azat Khuzhin)
o cmake: do not use stderr for notifications/version-info (38716c6 Azat Khuzhin)
o autoconf: fix --disable-thread-support build under win32 (bb09535 Azat Khuzhin)
o buffer: don't mix code and declarations (8892f4c Azat Khuzhin)
o Update gitignore file to ignore cscope gen'ed files (0aaa4fb Neeraj Badlani)
o For non GCC/clang on OSX the -Wno-deprecated-declarations may not be valid (b5ca365 Rainer Keller)
o automake: define serial-tests only if automake have this option (61179de Azat Khuzhin)
o test/automake: don't use paralell test harness (since automake 1.12) (44d755e Azat Khuzhin)
o Ignore all pkgconfig generated stuff (ce38993 Azat Khuzhin)
o libevent_core and libevent_extra also deserve a pkgconfig file (b8d7c62 Jan Heylen)
o Ignore verify_tests.bat (win32 version) (0f2de10 Azat Khuzhin)
o cmake: require 3.1 only for win32 to make it work under ubunty precise (87f7238 Azat Khuzhin)
o cmake: require at least 3.1 for target_sources() (c46ead5 Azat Khuzhin)
o cmake: fix adding of compiler flags, and now it will (36588e1 Azat Khuzhin)
o Replace -Wswitch-enum with -Wswitch, and add it into cmake rules too (f29f59e Azat Khuzhin)
o test/regress_ssl: Fix compile problems for win32 (73d0360 Trond Norbye)
o util: fix "%zu" format on TDM-gcc/MinGW-w64 (79b69d8 Azat Khuzhin)
o cmake: don't define EVENT__NEED_DLLIMPORT always (fixes VS2013 static build) (49bd790 Azat Khuzhin)
o Add missing return statement to del_wait_thread so libevent can build. (4f778ab Nick Mathewson)
o cmake: fix building dns-example under win32 (missing getopt) (a1609a8 Azat Khuzhin)
o visibility: align it to make it more readable (bb6b53d Azat Khuzhin)
o cmake: Fix detection of ssize_t/SSIZE_T (7707f6b Azat Khuzhin)
o Ignore more configure stuff (configure.lineno) (8d34302 Azat Khuzhin)
o Fixed issue with cmake version generation (d56efd9 Mark Ellzey)
o Cmake is now officially working. (7f9646d Mark Ellzey)
o More cmake updates, lot's of missing definitions (49a5381 Mark Ellzey)
o CMake syntax fixes fo .in files (6aad23d Mark Ellzey)
o Revert "The Windows socket type is defined as SOCKET." (a264da8 Mark Ellzey)
o CMAKE CMAKE CMAKE CLEANUPS (a9db46a Mark Ellzey)
o Lot's of cmake updates (8b228e2 Mark Ellzey)
o Provide a mechanism for building the library on Windows with different compiler flags. Add a batch file that builds it for the M[DT][d] options and performs a hunt and gather of the different output libraries. (ded8086 billsegall)
o The Windows socket type is defined as SOCKET. (c9e6c3d billsegall)
o autotools: fix getservbyname() detection (959a4c2 Azat Khuzhin)
o Add missing <string.h> for openssl_hostname_validation module (3316a21 Azat Khuzhin)
o make test/regress_ssl.c compile without warnings (9f02a44 Thomas Bernard)
o test/regress_be: drop debug __asm__(int3) to fix arm build (8240379 Azat Khuzhin)
o event_debug_created_threadable_ctx_: fix compilation without debug mode (a068f2e Azat Khuzhin)
o Add a prototype for event_disable_debug_mode() (bfcedee Sebastian Hahn)
o http: eliminate warning about "socklen" in evhttp_connection_connect_() (dfad1a4 Azat Khuzhin)
o Updated gitignore (1dbb55d Mark Ellzey)
o Update bench_httpclient.c (cb96931 Seungmo Koo)
o *fix: bench_httpclient to support win32 (4e9325e zeliard)
o Commented out a WIN32 threading / timing test for now (e84e269 Mark Ellzey)
o Fix mixed declarations and code (forbidden by ISO C90) (0c7f217 Thomas Bernard)
o Fix "function declaration isn’t a prototype" (746d2c5 Thomas Bernard)
o This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230 (19ba454 Joakim Söderberg)
o changed strtotimeval signature as per #211 (bdbc823 Xiao Bao Clark)
o Added cmake-generated files to ignore list. (6c12bfe Matyas Dolak)
o Ignore `make dist` generated files (8a2c6c7 Azat Khuzhin)
Debugging
o Debug mode option to error on evthread init AFTER other event calls. (dcfb19a Mark Ellzey)
Changes in version 2.1.5-beta (5 January 2015)
Security Fixes (evbuffers)
o Avoid integer overflow bugs in evbuffer_add() and related functions. See CVE-2014-6272 advisory for more information. (d49bc0e88b81a5812116074dc007f1db0ca1eecd)
New APIs (evconnlistener)
o Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT (b625361 Maciej Soltysiak)
Bugfixes (core)
o Fix use-after-free error in EV_CLOSURE_EVENT callback (3cc0eac John Ohl)
o Fix race caused by event_active (3c7d6fc vjpai)
Bugfixes (evbuffer)
o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (ba59923)
o Consistently check for failure from evbuffer_pullup() (60f8f72)
o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (fb7e76a)
Bugfixes (windows, IOCP)
o be async: avoid double close() (f133b86 Azat Khuzhin)
Bugfixes (bufferevents)
o Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE (2c82aa0 John Ohl)
o make bufferevent_getwatermark api more robust (a21e510 ufo2243)
o [Bugfix] fix bufferevent setwatermark suspend_read (b34e4ac ufo2243)
o bufferevent_openssl: reset fd_is_set when setfd with -1 is called (3da84c2 Azat Khuzhin)
o Fix compilation for older OpenSSL versions. (5c7282f Joakim Soderberg)
New APIs (evhttp)
o Add evhttp_connection_set_family() to set addrinfo->family for DNS requests (12c29b0 Azat Khuzhin)
o Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed (2b9ec4c,10fe4f John Ohl)
New APIs (core)
o Implement new/free for struct evutil_monotonic_timer and export monotonic time functions (f2645f8 Andrea Shepard)
Bugfixes (evdns)
o Load hosts file on Windows. (a0b247c Vilmos Nebehaj)
o Don't truncate hosts file path on Windows. (d0dc861 Vilmos Nebehaj)
o Fix a crash in evdns related to shutting down evdns (9f39c88,e8fe749)
o evdns: avoid read-after-free in evdns_request_timeout_callback() (61262a0 Azat Khuzhin)
o Correctly handle allocation failures in evdns_getaddrinfo (6a53d15)
o evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry (74d0eee Azat Khuzhin)
o evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE (3ca9d43 Azat Khuzhin)
o evdns: fail ns after we are failing/retrasmitting request (97c750d Azat Khuzhin)
Bugfixes (evhttp)
o http: reset connection before installing retry timer (fix http retries handling) (bc79cc5 Azat Khuzhin)
Testing
o regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests (2fdc5f2 Azat Khuzhin)
o test: add family argument for http_connection_test_() (177b8a7 Azat Khuzhin)
o test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC (42aefeb Azat Khuzhin)
o test/http: add regress test for set family to AF_INET6 (3fbf3cc Azat Khuzhin)
o Update to a more recent tinytest_macros. (8da5a18)
o test/regress: add simplestsignal: to track reorder bugs separately (b897bef Azat Khuzhin)
o test/evbuffer_peek: add regress in case we have first buffer greater (e2d139d Azat Khuzhin)
o More evbuffer_peek() test cases (154006a)
o use correct tt macro for pointer compare (08c88ea)
o regress_buffer: fix 'memcmp' compare size (79800df Maks Naumov)
o Fix a use-after-free in unit tests. CID 752027 (3739057)
o Fix a dead-code warning in unit tests. CID 1193548 (c119f24)
o Use evutil_weakrand() in unit tests. (a677b72, 364c110)
o Use a more precise calculation for max in time-ratelim.c (ca5b5c7)
o Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from() (fb57b8b)
o Fix several memory leaks in the unit tests. (89c1a3b)
o Add test for evhttp_connection_free_on_completion (b0e9924 John Ohl)
o Fix annoying heisenbug in test-time.c (cb73704)
Sample code
o Make http-server.c output into good html5 (6d72bdc)
o Use FindClose for handle from FindFirstFile in http-server.c (6466e88)
o https-client: add -retries argument, for connection retries (d9da844 Azat Khuzhin)
Bugfixes (build)
o Add missing headerfile for cmake (15d90cc Trond Norbye)
o ignore one more test binary (b6593aa Michael Richardson)
o ignore config.cache/test-driver files (c83f333 Mike Frysinger)
o add a --disable-samples configure flag (0c492b3 Mike Frysinger)
o Add a few files created by "make verify" to .gitignore. (1a8295a Pierre Phaneuf)
o updates in cmake build (27bd9fa Sergey Nikulov)
o Fix cmake error when the Module path has more than one entry. (befbd13 Acer Yang)
o Fix CMake shared library build (e69d910 Nobuaki Sukegawa)
o Fix warnings when compiling with clang 3.5 (f5b4765 John Ohl)
o Fix mixed declarations and code (forbidden by ISO C90) (8afbdbc Thomas Bernard)
Bugfixes (miscellaneous)
o tree.h: drop duplicated content of tree.h (6193187 Azat Khuzhin)
o evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE (610410b,ad0493e,fea86a6,d83b337,5ca9e97 Azat Khuzhin)
o [Bugfix] fix grammer error (3a4d249 ufo2243)
o Change return type of evutil_load_windows_system_library_ to HMODULE (f691389)
o Fix a c90 warning (76643dd)
o Fix a typo in a doxygen comment. Reported by 亦得. (be1aeff)
o remove trailing comma from enum (b361b8a Jean-Philippe Ouellet)
Bugfixes (FreeBSD)
o Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed. (6fd7394 Adrian Chadd)
Changes in version 2.1.4-alpha (21 Mar 2014)
Libevent 2.1.4-alpha adds a number of new miscellaneous APIs to make
Libevent more useful, including support for early close detection with
epoll via EPOLLRDHUP, triggering bufferevent callbacks, adding more
evhttp callbacks, and more. There are also numerous bugfixes, including
a number for finalize-related issues from 2.1.3-alpha; and an
alternative (non-primary!) cmake-based build mechanism.
New APIs (core)
o Added event_base_get_num_events() (0fa107d Mobai Zhang)
o New event_base_active_by_fd API (865a142 Greg Hazel, 5c9da9a, 87fa2b0)
o Add event_base_active_by_signal by analogy (4865943)
o Add access to max event count stats (5173bef, efbd3dc, 26230a2
Andrew Sweeney)
o Implemented EV_CLOSED event for epoll backend
(EPOLLRDHUP). (b1b69ac Diego Giagio, 53d2793, 43ffcf6, dfe1e52
Marcin Juszkiewicz, ff26633 Joakim Soderberg, 3908a5e)
New APIs (evutil_secure_rng)
o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7)
New APIs (bufferevents)
o Add function to fetch underlying ratelimit cfg (4b3d5af Mark Ellzey)
o Pass and return const for bufferevent_get_token_bucket_cfg (1c77fbb
Mark Ellzey)
o Add watermark introspection (4ce242b Ondřej Kuzník)
o Add an option to trigger bufferevent I/O callbacks (61ee18b Ondřej Kuzník)
o Add an option to trigger bufferevent event callbacks (a7384c7
Ondřej Kuzník)
o Clarifications in response to merge req. comments (bd41947 Ondřej
Kuzník)
o Minor optimizations on bufferevent_trigger options (a3172a4)
New APIs (evhttp)
o Add evhttp_connection_get_server(). (a7f82a3 Maxime Henrion)
o add a http default content type option (5a5acd9 Nicolas Martyanoff)
o http: implement new evhttp_connection_get_addr() api. (0c7f040 Azat
Khuzhin)
o Add a variant of evhttp_send_reply_chunk() with a callback on
evhttp_write_buffer() (8d8decf Julien BLACHE)
o Allow registering callback for parsing HTTP headers (b0bd7fe Balint Reczey)
o Provide on request complete callback facility (b083ca0 Andrew Sweeney)
o evhttp_request_set_on_complete_cb to be more specific about what
the function actually does and usage (da86dda Andrew Sweeney)
o Update unit test to make sure that the callback happens after the
output data is written (b85f398 Andrew Sweeney)
Features (evdns)
o bug fix for issues #293 evdns_base_load_hosts doesn't remove
outdated addresses (954d2f9, f03d353, 45eba6f Kuldeep Gupta)
Features: (cmake build support)
o Initial CMake commit. (e415196 Joakim Soderberg)
o Add all tests and benchmarks to CMake project. (e9fc014 Joakim Soderberg)
o More work on adding tests to CMake project (99c1dc3 Joakim Soderberg)
o Generate a dummy evconfig-private.h so things build
properly. (ce14def Joakim Soderberg)
o Link libm on unix platforms. (58fcd42 Joakim Soderberg)
o Added some GCC specific options. (19222e5 Joakim Soderberg)
o Use evutil_closesocket instead. (dbf2b51 Joakim Soderberg)
o Add copyright and licensing files for CMake modules. (c259d53
Joakim Soderberg)
o Only include WIN32 getopt where it is used. (9bbce0b Joakim Soderberg)
o Fix bench_cascade program on Windows. (78da644 Joakim Soderberg)
o Don't segfault on no found event backend. (8f2af50 Joakim Soderberg)
o Only test the event backends available on the system. (7ea4159
Joakim Soderberg)
o Added a "make verify" target. (e053c4f Joakim Soderberg)
o Fix the make "verify" target on Windows. (67e5d74 Joakim Soderberg)
o Get rid of deprecation warnings for OpenSSL on OSX 10.7+ (69c3516
Joakim Söderberg)
o Fix kqueue support. (a831f2f Joakim Söderberg)
o Added a test for testing if kqueue works with pipes. (2799b35
Joakim Söderberg)
o Change the BSD license from 4 to 3-clause. (86df3ed Joakim Soderberg)
o Minimum required python version is 2.4. (968e97b Joakim Soderberg)
o Get rid of unknown pragma warnings. (0ef1d04 Joakim Soderberg)
o Add a "make verify_coverage" target generation coverage
info. (f2483f8 Joakim Soderberg)
o Fix the "make verify" target on NetBSD (4ac086a Joakim Soderberg)
o Only look for ZLib when it is used (if tests are
included). (f780593 Joakim Soderberg)
o Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into
errors. (dd413bd Joakim Soderberg)
o Add CMake config and install targets. (f3446ed Joakim Soderberg)
o Fix typo (4b754df Joakim Soderberg)
o Some work on making it possible to simply do add_subdirectory() on
the project. (49ab363 Joakim Soderberg)
o Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG (fd42e70 Joakim Soderberg)
o Fix so that old nmake project still builds. (24d6466 Joakim
Soderberg)
o Rename README to README.md and use markdown to format. (d2bc39a
Joakim Soderberg)
o Update README with CMake build instructions. (604b8cc Joakim Soderberg)
o Clean up the README some. (8d4cb35 JoakimSoderberg)
o Forgotten headers for old nmake project compatability. (8697b99
Joakim Soderberg)
o Change all uses of WIN32 to _WIN32 (4e14395 Joakim Söderberg)
o Fix include bug. (2024467 Joakim Söderberg)
o Check if we're on OSX before disabling deprecation in le-proxy
(8b40a5b Joakim Söderberg)
o Fix broken autotools build. (ae1bd82 Joakim Söderberg)
o Disclaimerize cmake a little in the README (d03b5bf)
o Fix CMake compile when OpenSSL is disabled. (e423d42 Joakim
Söderberg)
o CMake: Get rid of python not found warning when regress tests
turned off. (d38d798 Joakim Söderberg)
o Fix https-client compilation on Windows. (d7be788 Joakim Soderberg)
o Guard against EVENT_NOWIN32 being set during testing. (f1715b4
Joakim Soderberg)
o Check for OSX when checking for clang. (e212c54 Joakim Soderberg)
o Added a Travis-CI configuration file. (8c0f0a9 Joakim Soderberg)
o Added -Qunused-arguments for clang on macosx (ed99d92 Trond Norbye)
o Rename event_extras to event_extra (a0dd5df Trond Norbye)
o Add option to build shared library (4545fa9 Trond Norbye)
o Add -Qunused-arguments for clang on macos (b56611d Trond Norbye)
o Add cmake-related files to .gitignore (e061321 Trond Norbye)
o Export event_extra not event_extras. (2b41bcf Joakim Söderberg)
Bugfixes (core)
o If evsel->del() fails, don't leave the evmap in an inconsistent
state (9b5a527 Maxime Henrion)
o Move event_debug_note_teardown_ before mm_free. (69b5c64)
o Check CLOCK_MONOTONIC_* at runtime if needed. (911abf3)
o Fix reinit of fds with EV_WRITE but not EV_READ. (ebfd8a8 maksqwe)
o Tweaked callbacks to prevent race condition
(https://github.com/libevent/libevent/issues/104) (40830f1, 2ea15ed
John Ohl)
o Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE
case (9805972)
Bugfixes (evhttp)
o Fix a double close() bug in evhttp when the underlying bufferevent uses
BEV_OPT_CLOSE_ON_FREE. (31db8a0 Maxime Henrion)
o Fix an unlikely but possible error case for http connections (f22049e)
o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum)
Bugfixes on 2.0 (Windows)
o Use windows vsnprintf fixup logic on all windows environments (e826f19)
o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
(b8f5980 Frank Denis)
Bugfixes (evutil_secure_rng)
o When we seed from /proc/sys/kernel/random/uuid, count it as success
(e35b540)
o We should return after arc4random_buf() (1ea1f26 Makoto Kato)
o Avoid other RNG initialization FS reads when urandom file is
specified (9695e9c)
o Really remove RNG seeds from the stack (f5ced88)
o Fix another arc4random_buf-related warning (e64a2b0)
Bugfixes (bufferevents)
o Initialize async bufferevent timeout CBs unconditionally (af9b2a7)
Bugfixes (evdns)
o Checking request nameserver for NULL, before using it. (5c710c0
Belobrov Andrey)
o Fix SEGFAULT after evdns_base_resume if no nameservers
installed. (14971a8 Azat Khuzhin)
o Actually use the log facility for reporting evdns problems. (e1766a1)
o Fix SEGFAULT after evdns_base_resume if no nameservers
installed. (f8d7df8 Azat Khuzhin)
o fix for ServFail from RIPE Atlas release (62f596b Antony Antony)
Bugfixes (compilation)
o Fix test compilation with nmake: add the gdi.lib dependency (5ba8ab7)
o Whoops. It is gdi.lib, not gdi32.lib. (github issue #61) (8ab612e)
o Don't use return since return type is void and build error occurs
using clang (838161d Makoto Kato)
o Use void casts to suppress some "unchecked return value" warns (7080d55)
o rpcgen: Generate regress.gen.[c,h] in build rather than src dir
(243386c Ross Lagerwall)
o Fix a compiler warning when checking for arc4random_buf linker
breakage. (5cb3865)
o Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
(239d834)
o Fix a c90 warning (c207682)
o Fix consts in WIN32-Code/getopt*.[ch] (57abb35)
Bugfixes (locks, synchronization)
o Missed lock acquire/release in event_base_cancel_single_callback_()
(d3d999a Azat Khuzhin)
o Fix locking in bufferevent_get_options_(). (dbc9cd4 Maxime Henrion)
Bugfixes (leaks)
o Avoid leaking segment mappings when offset is not a page multiple (d409514)
Testing
o Add tests for evdns_base_resume(). (1cd9ff5 Azat Khuzhin)
o Fix dns/leak_resume_send_err test. (7e876df Azat Khuzhin)
o Add checks for evhttp_connection_get_server() in unit
tests. (fbc323b Maxime Henrion)
o Fix a (failure-only) null dereference in the unit tests (1104d0b)
o Fix a logic error in test_evbuffer_freeze (7765884)
o Add missing check to test_evbuffer_file_segment_add_cleanup_cb (eba4506)
o Fix some crash-on-fail cases in DNS regression tests (87cd6f0)
o DNS tests: add a missing check (f314900)
o Finalize tests: add a missing check (82b6956)
o test_evutil_rtrim: add another missing check. (e193c95)
o regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
(611e28b Azat Khuzhin)
o regress_http: add tests for evhttp_connection_get_addr() (4dd500c
Azat Khuzhin)
o Update to the latest version of tinytest (7a80476)
o Heap-allocate zlib data structure in regress_zlib tests (4947c18)
Performance tweaks (core)
o Avoid redundant syscall to make a nonblocking socket nonblocking
(42c03da Maxime Henrion)
o Avoid redundant syscall if making a socket cloexec twice (1f29b18)
o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62)
Documentation
o Document that arc4random is not a great cryptographic PRNG. (6e49696)
o Small doxygen tweaks (6e67b51)
o Try another doxygen tweak (ccf432b)
o Clarify event_base_loop exit conditions (031a803)
o Fix a typo (be7bf2c Ondřej Kuzník)
o Document deferred eventcb behaviour (13a9a02 Ondřej Kuzník)
o Typo fixes from Linus Nordberg (cec62cb, 8cd695b)
o Fix duplicate paragraph in evbuffer_ptr documentation (58408ee)
Code Improvements (coverity)
o Fix a pile of coverity warnings in the unit tests (867f401)
o Fix coverity warnings in benchmark tools. (ff7f739)
o Whoops; fix compilation in bench.c (544cf88)
o Remove spurious checks in evrpc.c error cases (coverity) (991b362)
o Fix a couple of compilation warnings in regress_http.c (860767e)
o Fix even more coverity warnings. (d240328)
o Stop checking for inet_aton; we don't use it. (f665d5c)
o Add an include to evrpc-internal to fix openbsd compilation warning
(5e161c6)
Cleanups
o Remove an unreachable return statement in minheap-internal.h (e639a9e)
o Refactor evmap_{io,signal}_active_() to tolerate bad inputs (974c60e)
o Fix needless bufferevent includes in evdns.c (254c04e)
o Fix a couple of "#ifdef WIN32" instances (88ecda3)
o Remove unneeded declaration in bufferevent-internal.h (4c8ebcd)
Sample code
o le-proxy: Fail more gracefully if opening listener fails (44b2491)
o http-server: drop uri_root from base_url in http-server. (6171e1c Azat Khuzhin)
o https-client: POST supported, args supported (c5887f7 Alexey Ozeritsky)
o https-client: code cleanup (29af65e Alexey Ozeritsky)
o https-client: Small tweaks to https-client.c (90786eb)
o https-client: Set hostname for SNI extension (by f69m) (d1976f8)
o https-client: add a cast to https-client.c (462e6b6)
Changes in version 2.1.3-alpha (1 May 2013)
Libevent 2.1.3-alpha fixes various bugs, adds new unit tests, and cleans
up the code in a couple of places. It has a new callback in evhttp for
reporting errors during a request, a new feature for allowing evdns to
not keep the event_base looping when there are no requests inflight, and
example code for writing an https client.
Libevent 2.1.3-alpha also has an important new (experimental) event
finalization feature to allow safe event teardown in multithreaded
programs. This ought to fix the longstanding bug with deadlocks in
multithreaded use of SSL-based bufferevents that some people have been
experiencing since Libevent 2.0.
Core (event finalization)
o Implement event_finalize() and related functions to avoid certain
deadlocks (8eedeab)
o Use finalization feature so bufferevents can avoid deadlocks (02fbf68)
o Always run pending finalizers when event_base_free() is called (e9ebef8)
o Remove bufferevent_del_generic_timeout_cbs as now unused (4ea4c6a)
o More documentation for finalization feature (a800b91)
o Make the event_finalize* functions return an error code (5d11f4f)
o Mark the finalize stuff as experiemental in case it needs to
change (23e2e29)
Evdns
o evdns: New flag to make evdns not prevent the event loop from
exiting (6b7fa62 Azat Khuzhin)
Bugfixes (Core)
o Make event_remove_timer behave correctly with persistent timers (5623e80)
o Unit test for event_remove_timer with EV_PERSIST. (96150dd)
o Double-check next timeout when adding events (9443868 Nate Rosenblum)
o event_base_update_cache_time should be a no-op if the loop isn't
running (5e6fa2a)
Bugfixes (evhttp, crash fix, from 2.0)
o fix#73 and fix http_connection_fail_test to catch it (b618204 Greg Hazel)
Bugfixes (compilation and portability, from 2.0)
o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739)
o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan)
o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
(74d4c44 Kevin Bowling)
o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake
1.13 compat (817ea36)
o Rename configure.in to configure.ac to appease newer autoconfs (0c79787)
o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e)
Bugfixes (resource leaks/lock errors on error, from 2.0)
o Avoid leaking fds on evconnlistener with no callback set (69db261)
o Avoid double-close on getsockname error in evutil_ersatz_socketpair
(0a822a6)
o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e)
Documentation Fixes (from 2.0)
o Fix a mistake in evbuffer_remove() arguments in example http server code
(c322c20 Gyepi Sam)
o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5)
Documentation Fixes
o minor documentation typos (809586a Patrick Pelletier)
o Fix cut-and-paste err in whatsnew-2.1 (49905ac)
o Fix comment to refer to sample/include.am correctly (9e8cdf3 Sebastian
Hahn)
o Fix typo : Dispatching instead of Dispaching (0c2bacc Volker Lendecke)
o fix some hinky indentation in evhttp_make_request (80e220e Patrick
Pelletier)
o "buffer" spelling (a452811 Patrick Pelletier)
o Specify return behavior in header for evbuffer_pullup() in corner case
(cf8d1cd Dan Petro)
o Clarify an important point about event_base_foreach_event() (920a5e6)
Compilation Fixes/Tool Support
o avoid valgrind false positive by zeroing epoll_event (1258614 Patrick
Pelletier)
o Fix harmless clang enum warning (b452a43 Sebastian Hahn)
o remove all exes on "make clean", not just regress.exe (974bfa0 Patrick
Pelletier)
o Make --disable-libevent-regress work again (787fd74)
o Do not build strlcpy.c when it will have no code. (4914620)
Portability Fixes
o When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it (bf7a0ff)
o Preliminary changes for Minix3. (0dda56a Nicholas Heath)
o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13
compat (bf278b)
o Avoid using $(top_srcdir) in TESTS. (2863c83)
o build test/test-script.sh on systems with a less-featureful $< (f935e21)
o Implement EVUTIL_ERR_IS_EAGAIN on windows. (42aaf4d)
Evhttp changes:
o Fix ipv6 support for http. When URL contain domain, not IP
address. (71e709c Azat Khuzhin)
o uri decode: fix for warning "use of uninitialised value" (64b6ece Azat
Khuzhin)
o uri decode: changed the test for the existence of the next character
(e1903e3 Azat Khuzhin)
o Move prototype of evhttp_decode_uri_internal() to http-internal.h
(de8101a Azat Khuzhin)
o Test: decoding just part of string with evhttp_decode_uri_internal()
(1367653 Azat Khuzhin)
o Add new error_cb for actual reporting of HTTP request errors. (7b07719
Azat Khuzhin)
o Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test() (862c217
Azat Khuzhin)
o Drop extra header http_struct.h from regress_http.c (54cc800 Azat Khuzhin)
Testing
o Add regress test ipv6_for_domain. (9ec88bd Azat Khuzhin)
o Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug
mode (2fad0f3)
o Add a test with an active_later event at event_base_free time. (1c3147f)
o Make all tests pass under EVENT_DEBUG_MODE=1 (b1b054f)
o Add some verbose notes to bufferevent unit tests (9d893c9)
o New test for active_later->active transition on event_active (a153874)
o New tests for event_base_foreach_event() (0b096ef)
o Unit tests for event_base_gettimeofday_cached() and
event_base_update_cache_time() (30ea291)
o A test for event_get_assignment() (f09629e)
o More unit tests for initializing common timeouts. (d596739)
o Fix a bug in the new main/event_foreach test (702c9aa)
Windows:
o use FormatMessage for winsock errors (0c6ec5d, 2078e9b, 4ccdd53, c9ad3af
Patrick Pelletier)
o a program to print out the error strings for winsock errors (7296512
Patrick Pelletier)
o Fix a warning introduced in 0c6ec5d8 (eeb700c)
o Fix another warning introduced in 0c6ec5d8 (ed26561)
Examples (http)
o Add sample/https-client.c, an example of stacking evhttp as a client on
top of bufferevent_ssl. (be46c99 Catalin Patulea)
o use ${OPENSSL_LIBS} instead of -lssl -lcrypto (bf31fa5 Patrick Pelletier)
o https-client was putting newlines at 256-byte boundaries (42d7441 Patrick
Pelletier)
o better handling of OpenSSL errors (5754d96 Patrick Pelletier)
o use Debian's default root certificate location (aacd674 Patrick Pelletier)
o use iSECPartners code to validate hostname in certificate (64d9f16
Patrick Pelletier)
o avoid sign mismatch warning in openssl_hostname_validation.c (6021cb5
Patrick Pelletier)
o pull in wildcard matching code from cURL (4db9da6 Patrick Pelletier)
o Another tweak to https-client.c (95acdaa)
o Remove http_struct.h usage in sample/https-client.c (8a90a85)
Changes in version 2.1.2-alpha (18 Nov 2012)
Libevent 2.1.2-alpha includes more portable for monotonic timers,
refactors much of Libevent's internal and external infrastructure,
closes some longstanding gaps in the interface, makde other
improvements. Ths log below tries to organize features by rough area of
effect. It omits a few commits which were pure bugfixes on other commits
listed below. For more detail, see the git changelogs. For more
insight, see the "whatsnew-2.1.txt" document included in the Libevent
2.1.2-alpha distribution.
Libevent 2.1.2-alpha also includes all changes made in 2.0.19-stable
through 2.0.21-stable inclusive.
Performance (core):
o Replace pipe-based notification with EVFILT_USER where possible. This
should make multithreaded programs on OSX and *BSD alert the main thread a
little faster. (53a07fe)
o Make th_base_lock nonrecursive. (9cd5acb)
New/Changed API Functions:
o New event_get_priority() function to return an event's priority (f90e255)
o Add a bufferevent_get_priority() function (bd39554)
o Add an event_base_loopcontinue() to tell Libevent to rescan for more
events right away (7d6aa5e)
o Add a new callback to get called on evbuffer_file_segment free
(e9f8feb yangacer, 64051b9)
o Expose event_base_foreach_event() as a public API. (84fd6d7 Roman
Puls, 232055e, ffe1643)
o Add an event_remove_timer() to remove timer on an event without
deleting it (e3b2e08)
o Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible
semantics (9dee36b)
o Rename event_enable_lock_debuging() to ..._debugging(). (The old name
should still work.) (07e132e)
o Add missing implementation for event_enable_debug_logging (3b3e21d)
PORTABLE MONOTONIC TIMERS:
Libevent 2.1.2 includes internal support for monotonic timers on
(nearly) all supported platforms, including Windows, and OSX. Libevent
applications should now be more resilient to jumps forwards or backwards
in the system clock. Also, on Linux systems with epoll, we now
optionally support microsecond-level timeouts (whereas epoll only
supports millisecond-precision timeouts).
o Use mach_absolute_time() for monotonic clock support on OSX. (b8fd6f9)
o Do not track use_monotonic field when is no monotonic clock (cb653a0)
o EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
(ddd69d3)
o On Linux, use CLOCK_MONOTONIC_COARSE by default (55780a7)
o Implement a GetTickCount-based monotonic timer for Windows (d5e1d5a)
o Refactor monotonic timer handling into a new type and set of
functions; add a gettimeofday-based ratcheting implementation (f5e4eb0)
o Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow
timer (a2598ec)
o Implement fast/precise monotonic clocks on Windows (2c47045)
o Simple unit tests for monotonic timers (630f077)
o Improve the monotonic-time unit test: make it check the step size (7428c78)
o When PRECISE_TIMERS is set with epoll, use timerfd for microsecond
precision (26c7582)
o Split out time-related evutil functions into a new evutil_time.c (c419485)
o Split out time-related prototypes into time-internal.h (71bca50)
o Add evutil_time.obj to Makefile.nmake (0ba0683)
o Avoid giving a spurious warning when timerfd support is unavailable
(1aaf9f0 Dave Hart)
o Make test_evutil_monotonic a little more tolerant (def3b83)
o Avoid unused-var warning on systems with clock_gettime but without
CLOCK_MONOTONIC_COARSE (9be5468)
EVENT_BASE_ONCE LEAKS:
If a callback added by event_base_once() is never invoked, Libevent no
longer leaks internal memory.
o Free dangling event_once objects on event_base_free() (c17dd59)
o Add a unit test in which an event is created with event_base_once()
but never fires (4343edf)
TESTING SUPPORT, FIXES AND IMPROVEMENTS:
Libevent now disables by default its unit tests that would touch the
network, or that tend to fail on heavily-loaded systems. To re-enable
them, invoke the ./test/regress program with the @all alias.
o Simplify test.sh code significantly. (9b856fd Ross Lagerwall)
o Make all tests that hit the network disabled by default (f2cea87)
o Avoid a resource leak on error in http client benchmark (ea92fba)
o Update to latest tinytest (911b4f0349377) (ef7c4f7)
o Avoid (unlikely) overflow in bench_httpclient.c (5671033)
o Shave 700 msec off the persistent_timeout_jump test (21205b8)
o Check return value of write() in regress.c (c8009d2)
o Make load-dependent monotonic timer tests off-by-default (2b6fe8b)
o Add deferred_cb_skew to list of timing-dependent tests (34c8f31)
o Avoid test -e; older shs don't have one. (f1bd938)
o Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086)
o Fix a couple of compile warnings in the unit tests (5a9a014)
MISC:
o Change evutil_weakrand_() to avoid platform random() (e86af4b Nicholas
Marriott, 3aa4415)
INFRASTRUCTURE (Active-later events):
As a simplification and optimization to Libevent's "deferred callback"
logic (introduced in 2.0 to avoid callback recursion), Libevent now
treats all of its deferrable callback types using the same logic it uses
for active events. Now deferred events no longer cause priority
inversion, no longer require special code to cancel them, and so on.
o Refactor the callback part of an event into its own event_callback
type (cba59e5)
o Add "active later" event_callbacks to supersede deferred (745a63d)
o event_base_assert_ok: check value of event_active_count for
correctness (fec8bae)
o Replace deferred_cbs with event_callback-based implementation. (ae2b84b)
o Replace more deferred_cb names with event_callback (a4079aa)
o Give event_base_process_active a single exit path (581b5be)
o Restore our priority-inversion-prevention code with deferreds (c0e425a)
o Refactor event_persist_closure: raise and extract some common logic
(bec22b4)
o Remove the unused bits from EVLIST_ALL (9889a3d)
||||||| merged common ancestors
Summary for 1.8.1 libpcap release
Add a target in Makefile.in for Exuberant Ctags use: 'extags'.
Rename configure.in to configure.ac: autoconf 2.59
Clean up the name-to-DLT mapping table.
Add some newer DLT_ values: IPMI_HPM_2,ZWAVE_R1_R2,ZWAVE_R3,WATTSTOPPER_DLM,ISO_14443,RDS
Clarify what the return values are for both success and failure.
Many changes to build on windows
Check for the "break the loop" condition in the inner loop for TPACKET_V3.
Fix handling of packet count in the TPACKET_V3 inner loop: GitHub issue #493.
Filter out duplicate looped back CAN frames.
Fix the handling of loopback filters for IPv6 packets.
Add a link-layer header type for RDS (IEC 62106) groups.
Use different intermediate folders for x86 and x64 builds on Windows.
On Linux, handle all CAN captures with pcap-linux.c, in cooked mode.
Removes the need for the "host-endian" link-layer header type.
Compile with '-Wused-but-marked-unused' in devel mode if supported
Have separate DLTs for big-endian and host-endian SocketCAN headers.
Reflect version.h being renamed to pcap_version.h.
Require that version.h be generated: all build procedures we support generate version.h (autoconf, CMake, MSVC)!
Properly check for sock_recv() errors.
Re-impose some of Winsock's limitations on sock_recv().
Replace sprintf() with pcap_snprintf().
Fix signature of pcap_stats_ex_remote().
Initial cmake support for remote packet capture.
Have rpcap_remoteact_getsock() return a SOCKET and supply an "is active" flag.
Clean up {DAG, Septel, Myricom SNF}-only builds.
Do UTF-16-to-ASCII conversion into the right place.
pcap_create_interface() needs the interface name on Linux.
Clean up hardware time stamp support: the "any" device does not support any time stamp types.
Add support for capturing on FreeBSD usbusN interfaces.
Add a LINKTYPE/DLT_ value for FreeBSD USB.
Go back to using PCAP_API on Windows.
CMake support
Add TurboCap support from WinPcap.
Recognize 802.1ad nested VLAN tag in vlan filter.
Thursday Sep. 3, 2015 guy@alum.mit.edu
Summary for 1.7.5 libpcap release
Man page cleanups.
Add some allocation failure checks.
Fix a number of Linux/ucLinux configure/build issues.
Fix some memory leaks.
Recognize 802.1ad nested VLAN tag in vlan filter.
Fix building Bluetooth Linux Monitor support with BlueZ 5.1+
Saturday Jun. 27, 2015 mcr@sandelman.ca
Summary for 1.7.4 libpcap release
Include fix for GitHub issue #424 -- out of tree builds.
Friday Apr. 10, 2015 guy@alum.mit.edu
Summary for 1.7.3 libpcap release
Work around a Linux bonding driver bug.
Summary for 4.8.1 tcpdump release
Fix "-x" for Apple PKTAP and PPI packets
Use PRIx64 to print a 64-bit number in hex.
Printer for HNCP (RFCs 7787 and 7788).
dagid is always an IPv6 address, not an opaque 128-bit string, and other fixes to RPL printer.
RSVP: Add bounds and length checks
OSPF: Do more bounds checking
Handle OpenSSL 1.1.x.
Initial support for the REdis Serialization Protocol known as RESP.
Add printing function for Generic Protocol Extension for VXLAN
draft-ietf-nvo3-vxlan-gpe-01
Network Service Header: draft-ietf-sfc-nsh-01
Don't recompile the filter if the new file has the same DLT.
Pass an adjusted struct pcap_pkthdr to the sub-printer.
Add three test cases for already fixed CVEs
CVE-2014-8767: OLSR
CVE-2014-8768: Geonet
CVE-2014-8769: AODV
Don't do the DDP-over-UDP heuristic first: GitHub issue #499.
Use the new debugging routines in libpcap.
Harmonize TCP source or destination ports tests with UDP ones
Introduce data types to use for integral values in packet structures.
RSVP: Fix an infinite loop
Support of Type 3 and Type 4 LISP packets.
Don't require IPv6 library support in order to support IPv6 addresses.
Many many changes to support libnetdissect usage.
Add a test that makes unaligned accesses: GitHub issue #478.
add a DNSSEC test case: GH #445 and GH #467.
BGP: add decoding of ADD-PATH capability
fixes to LLC header printing, and RFC948-style IP packets
Friday April 10, 2015 guy@alum.mit.edu
Summary for 4.7.4 tcpdump release
RPKI to Router Protocol: Fix Segmentation Faults and other problems
RPKI to Router Protocol: print strings with fn_printn()
wb: fix some bounds checks
When } command is executed in the last paragraph including EOF, the original vi
(traditional/SVR4) moves the cursor to the *last* character in the last line.
However, nvi moves it to the *first* character in the last line.
Remove a mention of "1989" at the end of the 4th paragraph in HISTORY section,
probably leftover because of copy-paste from the paragraph above.
Sort SEE ALSO.
Remove trailing white spaces at some places.
Remove Pp after Sh at few places as pointed out by mandoc.
ok christos@
* NEWS: doc: update NEWS for 2.6.3 release
2016-11-26 Explorer09 <explorer09@gmail.com>
* configure.ac, src/Makefile.am: build: New configure option
'--disable-bootstrap'. If configure is run with '--disable-bootstrap', then stage1flex
won't be built and stage1scan.c will be generated by sed'ing scan.c. This option is intended to workaround bootstrap bugs rather than to
fix the bootstrapping issues which are proving subtler and harder to
fix than anyone would like.
2016-11-26 Explorer09 <explorer09@gmail.com>
* src/Makefile.am: build: "make clean" deletes stage1scan.c,
stage1flex
2016-11-26 Explorer09 <explorer09@gmail.com>
* configure.ac, src/Makefile.am: build: allow building libfl even
with --disable-libfl. For various reasons, we may wish to build libfl explicitly even when
configure has been run with the --disable-libfl option. This is
possible, now, via 'make -C src libfl.la'.
2016-12-19 Alexis La Goutte <alexis.lagoutte@gmail.com>
* src/flex.skl: scanner: remove trailing whitespace in skeleton
2016-12-01 Demi Obenour <demiobenour@gmail.com>
* src/buf.c, src/main.c, src/parse.y: scanner: Disallow, overquote
'[' and ']' in prefix
2016-12-29 Samuel Thibault <samuel.thibault@ens-lyon.org>
* src/main.c: scanner: allocate correct buffer size for m4 path. Flex did not check the length of the m4 path which could lead to a
buffer overflow in some cases. Additionally, not all platforms
believe in PATH_MAX, so stop relying on it. Fixes#138
2016-11-24 Will Estes <westes575@gmail.com>
* NEWS: doc: note no more libcompat in NEWS
2016-11-24 Will Estes <westes575@gmail.com>
* lib/Makefile.am: build: explain empty lib/Makefile.am
2016-11-20 Explorer09 <explorer09@gmail.com>
* configure.ac: build: warn about cross compiling with *alloc
2016-11-19 Explorer09 <explorer09@gmail.com>
* configure.ac, lib/Makefile.am, lib/lib.c, src/Makefile.am: build:
Link $(LIBOBJS) from src/ dir, remove libcompat.la. The libcompat.la library was small and less friendly to
bootstrapping and cross compilation. Now, we will simply link
individual object files as needed, which is simpler.
2016-11-16 Explorer09 <explorer09@gmail.com>
* src/Makefile.am: build: Let stage1flex respect LFLAGS
2016-11-14 Will Estes <westes575@gmail.com>
* NEWS: doc: describe --disable-libfl in NEWS
2016-10-31 Explorer09 <explorer09@gmail.com>
* configure.ac, src/Makefile.am: build: Add --disable-libfl
configure option. Disabling libfl is useful when building flex for a cross-toolchain. Fixes: GH-99
2016-11-09 Demi Obenour <demiobenour@gmail.com>
* src/flex.skl, tests/array_r.l: fix backwards incompatible changes
in 2.6.2. This patch addscompatibility `#defines` for all macros affected by
`%prefix`. Fixes#113.
2016-11-08 Will Estes <westes575@gmail.com>
* tests/.gitignore: git: ignore quote_in_comment artifacts
2016-11-08 Demi Obenour <demiobenour@gmail.com>
* src/scan.l, tests/Makefile.am, tests/quote_in_comment.l,
tests/quote_in_comment.txt: Fixes a major bug in Flex's own lexing
of literals. My changes caused Flex to mishandle string and character literals in
line comments. This commit fixes them. Fixes#113.
2016-11-06 Thomas Klausner <wiz@NetBSD.org>
* configure.ac: Fix unportable test(1) operator. "==" is only supported by bash, "=" is the standard comparison
operator.
2016-11-02 Demi Obenour <demiobenour@gmail.com>
* tests/quotes.l: Add more escaping tests
2016-11-01 Demi Obenour <demiobenour@gmail.com>
* src/scan.l: Fix another escaping bug in non-indented verbatim section 2 code. I also did some reformatting.
2016-10-28 Alastair Hughes <hobbitalastair@gmail.com>
* configure.ac: build: fix false negatives for help2man and texi2dvi HELP2MAN and TEXI2DVI (or the corresponding ac_prog variables) will
never be zero length as they fall back to the missing script; check
for the fall back and warn on that instead of always warning.
2016-10-28 Explorer09 <explorer09@gmail.com>
* doc/Makefile.am: doc: Don't delete flex.1 during "make distclean". flex.1 is pre-generated in release tarball. If we delete it, the
next "configure and make" on the source directory will then require
help2man unnecessarily.
2016-10-27 Alastair Hughes <hobbitalastair@gmail.com>
* NEWS, doc/Makefile.am: Only regenerate the man page when required. Make the flex binary an order-only prerequisite, and add back the
prerequisites from before 7cfb440. This prevents rebuilding the man
page whenever the flex binary is rebuilt, which causes problems if
help2man is not installed and will never work when cross compiling. Fixes#108.
2016-10-26 Will Estes <westes575@gmail.com>
* NEWS, src/Makefile.am: build: no longer build PIC version of
libfl. The PIC version of libfl was not being built correctly. From the
lack of bug reports around this problem, we conclude that the PIC
version of libfl is not used and so we drop it from the build build
targets for flex.
2016-10-25 Explorer09 <explorer09@gmail.com>
* README.md: doc: README.md formatting fixes * Wrap everything in the raw document in 72 char per line limit. * Proper casing for terms "Git" and "GitHub" (don't try to look
lazy). * Add unordered list marks when needed. * Say `configure && make && make install` and quoted for fixed-width font. Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
2016-10-25 Will Estes <westes575@gmail.com>
* NEWS, configure.ac: build: version 2.6.3 begins
2016-10-24 Will Estes <westes575@gmail.com>
* NEWS: doc: mark 2.6.2 release date
2016-10-24 Will Estes <westes575@gmail.com>
* .gitignore, NEWS, configure.ac: build: switch xz to lzip
2016-10-20 Demi Obenour <demiobenour@gmail.com>
* src/scan.l, tests/quotes.l: Fix M4 quotation in section 2 prologue
and refactor duplicated code
2016-10-21 Alex Kennedy <alexzanderkennedy@gmail.com>
* doc/flex.texi: Update flex.texi: Removed repedative wording "Flex used to" was written twice at the beginning of Chapter 9,
paragraph 2.
2016-09-27 Demi Obenour <demiobenour@gmail.com>
* src/dfa.c, src/gen.c, src/main.c, src/nfa.c, src/parse.y,
src/scan.l, tests/bison_yylval_scanner.l,
tests/include_by_push.direct.l: Improved M4 quotation This fixes M4 quotation of certain strings beginning with `yy` (in
section 3 of the input file only) and character literals. The new
quotation method is also less brittle and faster. Tests that relied on the old behavior were fixed. Also, `yyconst` is no longer defined; use `const` (which it
unconditionally was defined to) instead.
2016-10-19 Will Estes <westes575@gmail.com>
* Makefile.am, configure.ac: build: for automake, flex is foreign
2016-10-19 Will Estes <westes575@gmail.com>
* README, README.md: doc: mv README to README.md
2016-10-19 Will Estes <westes575@gmail.com>
* README: doc: touch up README
2016-10-19 Will Estes <westes575@gmail.com>
* README: doc: README no longer mentions sourceforge
2016-10-06 Will Estes <westes575@gmail.com>
* NEWS: doc: update NEWS with more post-2.6.1 additions
2016-09-27 Demi Obenour <demiobenour@gmail.com>
* src/filter.c, src/flexdef.h, src/main.c, src/misc.c,
src/options.c, src/options.h, src/scan.l, src/yylex.c,
tests/Makefile.am, tests/alloc_extra.l, tests/array_r.l,
tests/basic_r.l, tests/c_cxx_nr.lll, tests/c_cxx_r.lll,
tests/debug_r.l, tests/include_by_reentrant.direct.l,
tests/lineno_r.l, tests/mem_nr.l, tests/mem_r.l, tests/posix.l,
tests/posixly_correct.l, tests/pthread.l, tests/quotes.l,
tests/reject.l4, tests/rescan_nr.direct.l, tests/rescan_r.direct.l,
tests/string_nr.l, tests/string_r.l: Fix M4 quoting of section 3. This fixes M4 quoting of section 3 of the input file, including
escape sequences and character constants. Tests were added to verify the behavior in section 3 with respect to
quoting. Both escaping of quotes and quoting of potential
macro-start characters are tested. Existing tests were also fixed to
account for the new -- and now correct -- behavior. Many tests
relied on the old behavior of expanding M4 macros in section 3.
They needed to be updated for the new behavior.
2016-10-03 Mightyjo <mightyjo@gmail.com>
* src/flex.skl, tests/.gitignore, tests/Makefile.am,
tests/cxx_restart.ll, tests/cxx_restart.txt: Fix yyrestart(NULL)
SEGV.
2016-09-05 Demi Obenour <demiobenour@gmail.com>
* src/scan.l: scanner: M4 quoting fixes
2016-09-05 Demi Obenour <demiobenour@gmail.com>
* src/Makefile.am: Support `make indent` for out of source builds
2016-09-24 Demi Obenour <demiobenour@gmail.com>
* src/Makefile.am, src/mkskel.sh: Simplify some shell code
2016-09-23 Demi Obenour <demiobenour@gmail.com>
* doc/flex.texi, src/flex.skl, src/flexdef.h, src/main.c,
src/options.c, src/options.h, src/scan.l, tests/.gitignore,
tests/Makefile.am, tests/noansi_nr.l, tests/noansi_nr.txt,
tests/noansi_r.l, tests/noansi_r.txt: no longer generate K&R C
scanners
2016-09-04 Demi Obenour <demiobenour@gmail.com>
* src/scan.l: Fix escaping of `[[` and `]]` in strings Previously, `[[` and `]]` were not escaped in strings, which led to
bad interactions with m4. Also, don't break strings on newline, as GCC et al support
whitespace between a backslash and the subsequent newline.
2016-06-20 Translation Project <coordinator@translationproject.org>
* NEWS, po/sv.po: new sv translation
2016-05-23 Demetri Obenour <demiobenour@gmail.com>
* src/misc.c: Delete action_m4_define from misc.c This function was not used and always triggered a fatal error when
run.
2016-05-20 Will Estes <westes575@gmail.com>
* tests/Makefile.am, tests/testwrapper-direct.sh: test: run direct
tests from srcdir
2016-01-11 Egor Pugin <egor.pugin@gmail.com>
* tests/include_by_buffer.direct.l, tests/include_by_push.direct.l,
tests/include_by_reentrant.direct.l: Exited with error code on some
conditions in include tests
2016-05-20 Will Estes <westes575@gmail.com>
* tests/testwrapper.sh: test: drop .exe when making input file names
2016-05-20 Will Estes <westes575@gmail.com>
* tests/Makefile.am: test: removed dependencies for include tests
2016-04-28 Tobias Klauser <tklauser@distanz.ch>
* src/scanflags.c: Avoid realloc on every call of sf_push() Currently, every call to sf_push() realloc()'s _sf_stack, even if
the maximum size _sf_max wasn't changed. As the indentation beneath
the "if" clause already indicates, the realloc() should only be
executed if _sf_max was increased. Found by compiling flex with the -Wmisleading-indentation flags of
gcc, which leads to the following warning: scanflags.c: In function âsf_pushâ: scanflags.c:42:5: warning:
this âifâ clause does not guard... [-Wmisleading-indentation] if
(_sf_top_ix + 1 >= _sf_max) ^~ scanflags.c:44:9: note: ...this
statement, but the latter is misleadingly indented as if it is
guarded by the âifâ _sf_stk = realloc(_sf_stk,
sizeof(scanflags_t) * _sf_max); ^~~~~~~
2016-03-31 Will Estes <westes575@gmail.com>
* doc/Makefile.am: build: prettified command to build man page
2016-03-31 Will Estes <westes575@gmail.com>
* doc/Makefile.am: build: added man page to DISTCLEANFILES
2016-03-31 Will Estes <westes575@gmail.com>
* BUGS, TODO: remove unused TODO, BUGS files
2016-03-31 Will Estes <westes575@gmail.com>
* to.do/README, to.do/Wilhelms.todo, to.do/Wish-List,
to.do/flex.rmail, to.do/streams.mail, to.do/unicode/FlexLexer.h,
to.do/unicode/ccl.c, to.do/unicode/changes.txt,
to.do/unicode/ecs.c, to.do/unicode/flex.1, to.do/unicode/flex.skl,
to.do/unicode/flexdef.h, to.do/unicode/gen.c, to.do/unicode/main.c,
to.do/unicode/misc.c, to.do/unicode/scan.l, to.do/unicode/tblcmp.c:
removed to.do/ directory
2016-03-31 Will Estes <westes575@gmail.com>
* po/POTFILES.in: gettext: removed flex.skl from POTFILES.in file
list
2016-03-31 rlar <rlar>
* src/Makefile.am: fix skel.c dependency (missing tables_shared.c)
and polish build rule Also remove references to srcdir since skel.c is no longer mentioned
in po/POTFILES.in.
2016-03-31 rlar <rlar>
* doc/Makefile.am: fix flex.1 dependency git clean -fdx && ./autogen.sh && \ mkdir -p ../build && cd ../build && ../flex/configure && make -j10
&& \ make dist failed with: > help2man: can't get `--help' info from ../../flex/src/flex Note: There is no dependency except for the flex binary.
2016-03-31 rlar <rlar>
* src/Makefile.am: fix stage1scan.c and stage1scan.l dependency git clean -fdx && ./autogen.sh && \ mkdir -p ../build && cd ../build && ../flex/configure && make -j10 failed with: > ../src/stage1flex -o stage1scan.c stage1scan.l > stage1flex: can't
open stage1scan.l Note: stage1scan.c is not necessairy in the "make dist" generated tar.gz
file. stage1flex will be build from scan.c (which is
distributed), and this will then generate stage1scan.c from scan.l
2016-03-31 Will Estes <westes575@gmail.com>
* po/POTFILES.in: gettext: list src/flex.skl in po/POTFILES.in
2016-03-29 rlar <rlar>
* src/gen.c: warning in generated code, with -Ca warning: conversion to 'yy_state_type' from 'flex_uint32_t' may
change the sign of the result [-Wsign-conversion]
2016-03-29 rlar <rlar>
* tests/Makefile.am: suppress `WARNINGFLAGS' for the almost obsolete
`noansi' test cases
2016-03-29 rlar <rlar>
* configure.ac, src/Makefile.am, tests/Makefile.am: configure option
`--enable-warnings' and `WARNINGFLAGS' `WARNINGFLAGS' can be passed when invoking `configure' and when invoking `make' if configure switch `--enable-warnings' was given then default to something useful if we have `GCC' `WARNINGFLAGS' is not used when compiling `stage1flex' to avoid unnecessary clutter
2016-03-31 Tobias Klauser <tklauser@distanz.ch>
* src/main.c: Fix potential buffer overflow in strncat() When using clang/llvm 3.8 to compile flex, the following warning is
emitted: main.c:378:27: warning: the value of the size argument in 'strncat'
is too large, might lead to a buffer overflow [-Wstrncat-size]
strncat(m4_path, m4, sizeof(m4_path));
^~~~~~~~~~~~~~~
main.c:378:27: note: change the argument to be the free space in the
destination buffer minus the terminating null byte strncat(m4_path,
m4, sizeof(m4_path)); ^~~~~~~~~~~~~~~
sizeof(m4_path) - strlen(m4_path) - 1Fix it up by using the solution proposed by the warning message.
2016-03-29 Robert.Larice Robert Larice <Robert.Larice@t-online.de>
* src/Makefile.am: build: simplified dependency tracking so parallel
make runs succeed
2016-03-20 rlar <rlar>
* src/flex.skl, src/gen.c, src/main.c: avoid warning in generated
code, with -Cf warning: conversion to 'unsigned int' from 'int' may change the sign
of the result [-Wsign-conversion]
2016-03-18 Will Estes <westes575@gmail.com>
* NEWS, configure.ac: mention v2.6.2; summarize changes since 2.6.1
2016-03-18 Will Estes <westes575@gmail.com>
* doc/flex.texi: doc: corrected example in manual, gh#67
2016-03-16 rlar <rlar>
* tests/string_nr.l, tests/string_r.l, tests/yyextra.l: warning:
conversion to 'size_t' from 'int' may change the sign of the result
[-Wsign-conversion]
2016-03-16 rlar <rlar>
* tests/mem_nr.l, tests/mem_r.l, tests/pthread.l: warning:
conversion to 'long unsigned int' from 'int' may change the sign of
the result [-Wsign-conversion]
2016-03-16 rlar <rlar>
* src/flex.skl: warning: conversion to 'flex_uint32_t' from 'long
unsigned int' may alter its value [-Wconversion] struct yytbl_reader, member bread is of type flex_uint32_t
2016-03-16 rlar <rlar>
* tests/alloc_extra.l, tests/bison_nr_main.c,
tests/bison_nr_parser.y, tests/bison_yylloc_parser.y: warning:
redundant redeclaration of '...' [-Wredundant-decls]
2016-03-16 rlar <rlar>
* tests/bison_nr_parser.y, tests/bison_yylloc_parser.y,
tests/bison_yylval_parser.y, tests/pthread.l: warning: no previous
prototype for '...' [-Wmissing-prototypes]
2016-03-16 rlar <rlar>
* tests/multiple_scanners_r_main.c: warning: unused variable 'fp'
[-Wunused-variable]
2016-03-16 rlar <rlar>
* tests/pthread.l: main(), warning: redundant redeclaration of
'main' [-Wredundant-decls]
2016-03-16 rlar <rlar>
* tests/include_by_reentrant.direct.l, tests/lineno_nr.l,
tests/lineno_r.l, tests/lineno_trailing.l: main(), warning:
old-style function definition [-Wold-style-definition]
2016-03-16 rlar <rlar>
* tests/alloc_extra.l, tests/array_nr.l, tests/array_r.l,
tests/basic_nr.l, tests/basic_r.l, tests/ccl.l, tests/debug_nr.l,
tests/debug_r.l, tests/extended.l, tests/mem_nr.l, tests/mem_r.l,
tests/noansi_r.l, tests/posix.l, tests/posixly_correct.l,
tests/prefix_nr.l, tests/prefix_r.l, tests/quotes.l,
tests/string_nr.l, tests/string_r.l, tests/yyextra.l: main(),
warning: old-style function definition [-Wold-style-definition]
2016-03-01 rlar <rlar>
* src/ecs.c, src/tblcmp.c: Fix two more casts
2016-03-14 Bastian Köcher <git@kchr.de>
* src/gen.c: Fixes yyl compare with unsigned warning
2016-03-13 Robert Larice <Robert.Larice@t-online.de>
* configure.ac: Suppress portability warnings in Makefile generation
2016-02-27 rlar <rlar>
* src/flex.skl: generated code, in yyensure_buffer_stack(), change
type of local `num_to_alloc' which is exclusively used in yy_size_t context
2016-03-01 rlar <rlar>
* src/flex.skl: generated code, in yy_get_next_buffer(), change type
of local `number_to_move' suits better, because `yy_n_chars' and `yy_buf_size' are of type
`int'
2016-02-27 rlar <rlar>
* src/flex.skl: generated code, `_yybytes_len' is of type `int', fix
code accordingly
2016-02-28 rlar <rlar>
* src/gen.c: generated code, `max_size' seems to be of type `int',
fix casts accordingly
2016-02-28 rlar <rlar>
* src/flex.skl: generated code, here `new_size' is of type `int',
fix casts accordingly
2016-02-28 rlar <rlar>
* src/flex.skl: generated code, `yy_buf_size' is of type `int', fix
casts accordingly
2016-02-28 rlar <rlar>
* src/flex.skl: generated code, `offset' is of type `int'
2016-02-28 rlar <rlar>
* src/gen.c: generated code, `yy_more_len' is of type `int'
2016-02-28 rlar <rlar>
* src/scan.l: scan.l, rewrite two loops to avoid unneccesairy
casting
2016-03-01 rlar <rlar>
* src/regex.c, src/tables.c: improve readability
2016-02-28 rlar <rlar>
* src/tblcmp.c: another cast in tblcmp.c to avoid warning
2016-02-28 rlar <rlar>
* src/buf.c: casts in buf_append() to get rid of warnings
2016-02-28 rlar <rlar>
* src/dfa.c, src/gen.c: cast to suite type of flex_uint32_t td_lolen
2016-02-28 rlar <rlar>
* src/main.c, src/misc.c, src/regex.c, src/scan.l, src/scanopt.c,
src/tables_shared.c: cast to get rid of warnings
2016-03-01 rlar <rlar>
* src/buf.c, src/main.c: cast and fix usage of log10(), ceil to
prevent buffer overflow
2016-03-01 rlar <rlar>
* src/tables.c: tables.c, sprinkle casts to get rid of warnings
2016-03-01 rlar <rlar>
* src/tables.c: yytbl_data_compress(), change type of local newsz to
get rid of warnings
2016-03-01 rlar <rlar>
* src/tables.c, src/tables.h: change type of struct
yytbl_writer.total_written to get rid of warnings
2016-02-28 rlar <rlar>
* src/tables.c: change argument type of yytbl_writen() to get rid of
warnings
2016-03-01 rlar <rlar>
* src/tables.c: yytbl_write8/16/32(), change type of local variables
to get rid of warnings
2016-02-28 rlar <rlar>
* src/flexdef.h, src/misc.c, to.do/unicode/flexdef.h,
to.do/unicode/misc.c: change return type and rename int
htoi()/otoi() --> unsigned int htoui()/otoui()
2016-03-01 Will Estes <westes575@gmail.com>
* NEWS: Mention 2.6.1 release date
2016-02-28 rlar <rlar>
* src/gen.c: avoid warning, add (int) cast to the read() return
value For similiarity with the fread() case.
2016-02-28 rlar <rlar>
* src/scan.l: avoid warning, POSIX says yyless() has an `int'
argument
2016-02-29 rlar <rlar>
* src/filter.c: use type size_t in filter_tee_header() to avoid
warnings
2016-02-29 rlar <rlar>
* src/filter.c, src/misc.c, src/scanopt.c, src/tables.c: add
(size_t) casts to malloc invocations to prevent warnings
2016-02-29 rlar <rlar>
* src/buf.c, src/misc.c, src/scan.l, src/scanopt.c, src/tables.c:
add (int) casts to some strlen() invocations to prevent warnings
2016-02-29 rlar <rlar>
* src/flexdef.h, src/scan.l, src/sym.c: ndlookup(), char *, to get
rid of casts and warnings
2016-02-28 rlar <rlar>
* src/flexdef.h, src/scan.l, src/sym.c: ndinstal(), char *, to get
rid of casts and warnings
2016-02-28 rlar <rlar>
* src/flexdef.h, src/scan.l, src/sym.c: cclinstal() and ccllookup(),
char *, to get rid of casts and warnings
2016-02-28 rlar <rlar>
* src/gen.c: warning: redundant redeclaration of
âgen_next_stateâ [-Wredundant-decls]
2016-02-28 rlar <rlar>
* src/gen.c: warning: no previous prototype for âmkecstblâ
[-Wmissing-prototypes]
2016-02-28 rlar <rlar>
* src/main.c: warning: suggest parentheses around assignment used as
truth value [-Wparentheses]
2016-02-28 rlar <rlar>
* src/flexdef.h: warning: redundant redeclaration of âyywrapâ
[-Wredundant-decls]
2016-02-28 rlar <rlar>
* src/flexdef.h: warning: redundant redeclaration of âyylvalâ
[-Wredundant-decls]
2016-02-28 rlar <rlar>
* src/flexdef.h: warning: redundant redeclaration of âyyinâ
[-Wredundant-decls]
2016-02-28 rlar <rlar>
* src/flexdef.h, src/main.c: warning: redundant redeclaration of
âyyparseâ [-Wredundant-decls]
2016-02-28 rlar <rlar>
* src/parse.y, src/scan.l, src/yylex.c, to.do/unicode/scan.l:
unification, rename some more rename these too for improved similiarity: OPTION_OP OPT_HEADER OPT_EXTRA_TYPE OPT_TABLES
2016-02-28 rlar <rlar>
* src/parse.y, src/scan.l, src/yylex.c, to.do/unicode/scan.l: fix
name clash, OPT_OUTFILE from parse.y and from options.h these collide: OPT_OUTFILE OPT_PREFIX OPT_YYCLASS rename them TOK_... in the
parser
2016-02-28 Will Estes <westes575@gmail.com>
* lib/reallocarray.c: Prototyped reallocarray implementation
2016-02-28 Will Estes <westes575@gmail.com>
* src/scanopt.c: Removed custom strcasecmp() function
2016-02-28 rlar <rlar>
* src/flex.skl: fwrite wants a size_t, yyleng is int per posix
2016-02-28 rlar <rlar>
* src/scanopt.c: Remove some unneeded casts
2016-02-28 rlar <rlar>
* src/flexdef.h: warning: negative integer implicitly converted to
unsigned type [-Wsign-conversion]
2016-02-27 rlar <rlar>
* src/dfa.c, src/parse.y: dfa.c:157:24: warning: conversion to
'size_t' from 'int' may change the sign of the result
[-Wsign-conversion] most certainly safe cast
2016-02-27 rlar <rlar>
* src/ccl.c: ccl.c:86:19: warning: conversion to 'unsigned char'
from 'int' may alter its value [-Wconversion] ch seems to have been checked for proper range some lines above
2016-02-27 rlar <rlar>
* tests/bison_nr_parser.y: warning: deprecated directive, use
'%pure-parser' [-Wdeprecated]
2016-02-27 rlar <rlar>
* lib/lib.c: warning: no previous prototype for 'do_nothing'
[-Wmissing-prototypes]
2016-02-27 rlar <rlar>
* src/libmain.c: included stdlib.h header
2016-02-27 Will Estes <westes575@gmail.com>
* NEWS: Described more post v2.6.0 changes
2016-02-27 Will Estes <westes575@gmail.com>
* configure.ac: build: Removed bzip2 distribiution archive
2016-02-27 Will Estes <westes575@gmail.com>
* configure.ac: removed obsolete program check
2016-02-27 Will Estes <westes575@gmail.com>
* configure.ac: Made some program checks more robust
2016-02-27 rlar <rlar>
* src/flex.skl: Remove unneeded cast to int
2016-02-27 Will Estes <westes575@gmail.com>
* src/flex.skl: Fixed incorrect integer type
2016-02-27 Will Estes <westes575@gmail.com>
* src/flex.skl: Fix more integer types, resolves sf 184, 187
2016-02-26 Robert Larice <Robert.Larice@t-online.de>
* src/flex.skl, src/gen.c: Removed some type conversion warnings
2016-02-26 Will Estes <westes575@gmail.com>
* src/flex.skl: Changed another buffer size to int; resolves gh#61
2016-02-24 Will Estes <westes575@gmail.com>
* src/flex.skl: Changed type of yy_n_chars to int; gh#53, sf#160. The variable yy_n_chars had been of type yy_size_t which is
incorrect given its use in read(). While it might be adviseable to
look at defining a yy_ssize_t, there might be some issues doing this
and so, for now, at least, we'll punt back to int.
2016-02-24 Will Estes <westes575@gmail.com>
* src/buf.c: Fixed size of bufferallocation, resolved gh#54. The value of n_alloc was a count, not a size. Multiplying the value
by the element size was incorrect. That multiplication was already
being done and having it done twice was incorrect.
2016-02-23 Tobias Klauser <tklauser@distanz.ch>
* src/scan.l: Allow '%option noline' in flex input file, resolves
gh#56. Allow specifying '%option noline' in the input file, leading to the
same effect as calling flex with the command line option --noline. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2016-02-23 Tobias Klauser <tklauser@distanz.ch>
* src/buf.c, src/main.c: Emit no #line directives if gen_line_dirs
is false, resolves igh#55. There are two instances in the code which will print a #line
directive to the resulting lexer, regardless of the value of
gen_line_dirs. Fix them, so they also respect gen_line_dirs. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2016-02-16 Tobias Klauser <tklauser@distanz.ch>
* lib/lib.c, src/gen.c, src/misc.c, src/scan.l: Converted K&R style
function definitions to ANSI C style Consistently make use of the ANSI C function definition style
instead of the K&R style.
2016-01-29 Tobias Klauser <tklauser@distanz.ch>
* src/flex.skl: Used NULL constant instead of plain integer for NULL
pointer. The sparse static checker warns about using plain integer 0 as NULL
pointers in the generated lexer code. Fix this by using NULL
consistently for pointers.
2016-01-29 Tobias Klauser <tklauser@distanz.ch>
* src/flex.skl: Marked declaration and definition of yy_fatal_error
as noreturn. Only the declaration of yy_fatal_error is marked with
__attribute__((__noreturn__)) in case GCC >= 3 is used, but not the
definition. This leads to the sparse static checker to complain
about function declaration mismatch. Fix it by defining a macro yynoreturn and using it for both the
declaration and the definition of yy_fatal_error.
2016-01-27 Tobias Klauser <tklauser@distanz.ch>
* src/flex.skl: Fixed declaration mismatch in yy_fatal_error. The prototype declares yy_fatal_error parameter as "const char
msg[]" while the definition uses "const char* msg" (introduced by
commit e9d5fc713f61b) which causes the sparse static checkers to
produce an error. Fix this by adjusting the definition to use "const char* msg" as
well. Also change the C++ version accordingly so it matches the
declaration in FlexLexer.hpp.
2016-01-23 Will Estes <westes575@gmail.com>
* CODE_OF_CONDUCT.md: flex is for flex #NCoC
2016-01-18 Will Estes <westes575@gmail.com>
* doc/flex.texi: Referred to github for issue tracking, no longer sf
2016-01-10 Egor Pugin <egor.pugin@gmail.com>
* tests/reject.l4, tests/tableopts.l4: Opened files in binary mode
explicitly
2016-01-08 OBATA Akio <obache@NetBSD.org>
* src/Makefile.am: Linked flex binary against libintl, not libfl. Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
2016-01-08 Michael van Elst <mlelstv@NetBSD.org>
* src/filter.c: Improved pipe-stdin hack behavior; resolves sf#198. Signed-off-by: Thomas <Klausner wiz@NetBSD.org>
2015-12-27 Will Estes <westes575@gmail.com>
* configure.ac, src/flexdef.h: Removed no longer needed header
checks
2015-12-27 Will Estes <westes575@gmail.com>
* configure.ac: Checked for reallocarray() with AC_REPLACE_FUNCS
2015-12-27 Will Estes <westes575@gmail.com>
* src/flexdef.h, src/main.c: include libgen.h from flexdef.h, not
main.c
2015-12-25 Michael Reed <m.reed@mykolab.com>
* src/main.c: Replace basename2() with basename(3). Given the following program: \#include <libgen.h> \#include <stdio.h> /* extracts basename from path, optionally stripping the extension
"\.*" * (same concept as /bin/sh `basename`, but different handling
of extension). */ static char *basename2 (char *path) { char *b; for (b = path; *path; path++) if (*path == '/') b = path + 1; return b; } static void basename_compare(char *path) { printf("basename: %s\n", basename(path)); printf("basename2: %s\n\n", basename2(path)); } int main (int argc, char *argv[]) { // From http://pubs.opengroup.org/onlinepubs/9699919799/ // ``Sample Input and Output Strings'' basename_compare("/usr/lib"); basename_compare("/usr/"); basename_compare("/"); basename_compare("///"); basename_compare("//usr//lib//"); return 0; } ... and the program's output: basename: lib basename2: lib basename: usr basename2: basename: / basename2: basename: / basename2: basename: lib basename2: ... we can see that basename2() behaves the same as basename(3) in
the average use case, but messes up pretty severely in others.
Besides that, basename(3) is mandated by POSIX so should be present
on modern Unix-like systems, so we shouldn't define it ourselves. Some notes: - it doesn't appear to be mentioned in POSIX, but OpenBSD's
basename(3) returns NULL if the returned path componenet is >
PATH_MAX, so add a check for that - basename(3) shouldn't return an empty string, so remove the program_name[0] != '\0' check
2015-12-25 Michael Reed <m.reed@mykolab.com>
* src/main.c: Simplify basename2(). It's only call site does not activate the `strip_ext` code path, so
the function can be simplified a lot. While here, remove a double
assignment.
2015-12-25 Michael Reed <m.reed@mykolab.com>
* src/flex.skl, src/misc.c: Cleaned up __STDC__ #ifdefs. Assuming a compiler conforming to the ISO C standard is used, i.e.,
__STDC__ is defined to 1, YY_USE_CONST is always defined and can be
eliminated.
2015-12-25 Michael Reed <m.reed@mykolab.com>
* src/flexdef.h, src/main.c, src/scanopt.c, src/scanopt.h,
src/sym.c: Remove remaining use of PROTO
2015-12-21 Serguey Parkhomovsky <xindigo@gmail.com>
* src/buf.c: buf.c: use snprintf
2015-12-19 Will Estes <westes575@gmail.com>
* configure.ac: build: reformatted AC_CHECK_FUNCS for readability
2015-12-17 Will Estes <westes575@gmail.com>
* src/scanopt.c: correct function prototype
2015-12-15 Michael Reed <m.reed@mykolab.com>
* src/main.c, src/scanopt.c, src/sym.c, src/tblcmp.c: Remove more
instances of PROTO
2015-12-15 Michael Reed <m.reed@mykolab.com>
* src/main.c: Removed prototype for main(). It's not called anywhere else so the prototype is not needed. See
the C99 standard [1], section 5.1.2.2.1 for more info. [1]: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
2015-12-13 Michael McConville <mmcco@mykolab.com>
* src/dfa.c, src/gen.c, src/nfa.c, to.do/unicode/main.c,
to.do/unicode/tblcmp.c: Removed more instances of PROTO, ansifying.
2015-12-13 Will Estes <westes575@gmail.com>
* README: Noted github for issue tracking and pull requests
2015-12-13 Michael McConville <mmcco@mykolab.com>
* README: Reformatted README; removed sf bug tracking link.
2015-12-13 Michael McConville <mmcco@mykolab.com>
* src/gen.c, to.do/unicode/gen.c: Removed macros for indentation
level. Just increment or decrement the indentation counter. That's less to
remember and makes the code more readable. w# Please enter the commit message for your changes. Lines starting
2015-12-12 Mike Frysinger <vapier@gentoo.org>
* tests/Makefile.am, tests/testwrapper.sh: tests: fixed paths to
input files. The current test wrapper works only when the inputs are specified
using relative paths. If they're specified with absolute paths, the
driver fails to detect the inputs because it always prepends the
input dir name which itself is a relative path: $ cd tests $
./testwrapper.sh -d . -i $PWD/reject.txt -t ./reject_ver.table
<fails to open inputs> This normally doesn't show up because people run `./configure` or,
for out of tree builds, `../configure`. But if you happen to run
configure with an absolute path, then automake tends to generate
absolute paths as well leading to test failures. Fix all of this by dropping the implicit input directory prepending. - INPUT_NAME is often a list of files, not just a single one - the input directory is used to find the testname tables which are usually generated, so it's impossible to use files from both
source and build directories - most of the time, the full/correct path is already specified
2015-12-12 Mike Frysinger <vapier@gentoo.org>
* configure.ac: configure: fixed realloc test. The [] characters are used for quoting in m4, so the attempt to use
them in place of `test` fails yielding the warning at build time: .../flex/configure: line 20222: no: command not found
2015-12-12 Michael McConville <mmcco@mykolab.com>
* src/flexdef.h: Started removal of PROTO macro. The PROTO macro is no longer needed. Additionally, its usage is
inconsistent, so we began removing it.
2015-12-12 Michael Reed <m.reed@mykolab.com>
* Makefile.am, src/main.c: Removed SHORT_FILE_NAMES preprocessor
symbol. As a relic of MS-DOS, we don't need this. It's never defined; see 13b5b214f53d1c3354a7ab910bd160c126df1331. Removed additional MSDOS ifdef.
2015-12-11 Michael McConville <mmcco@mykolab.com>
* configure.ac, lib/reallocarray.c, src/flexdef.h: Added new
function reallocarray. This is taken from OpenSSH Portable, which in turn takes it from
OpenBSD. reallocarray wraps the stdlib's realloc function. It takes two size
arguments and checks for overflow, like calloc, but doesn't zero the
memory. Therefore, it allows us to do overflow-safe array
reallocations and overflow-safe unzeroed array allocations, which
the stdlib allocation functions don't. We have a bunch of specific array allocation macros, none of which
check for overflow. reallocarray should be able to replace them.
2015-12-11 Michael McConville <mmcco@mykolab.com>
* src/flexdef.h: Removed MS-DOS, VMS macros. Given the age of the MS-DOS and VMS platforms, it's likely that no
one is building flex on them any more. Additionally, the preferred
approach is to test for particular platform features rather than to
test for particular platforms.
2015-12-12 Will Estes <westes575@gmail.com>
* src/flexdef.h, src/main.c: Made search for m4 more explicit.
2015-12-12 Will Estes <westes575@gmail.com>
* src/flex.skl: Returned 0 from yywrap() instead of EOF
2015-12-11 Will Estes <westes575@gmail.com>
* src/libmain.c: Changed end of main() in libmain to exit(0)
2015-12-11 Will Estes <westes575@gmail.com>
* NEWS, configure.ac: Mentioned v2.6.1; documented some changes
since v2.6.0
2015-12-11 Will Estes <westes575@gmail.com>
* README: Updated build documentation; finished sf#155. Removed version numbers for build tools. Noted that version
requirements for build tools will be noted in configure.ac. Expanded
documentation of building texinfo based docs.
2015-12-11 Will Estes <westes575@gmail.com>
* doc/Makefile.am: Removed flex.pdf from distribution; partially
fixed sf#155
2015-12-11 Will Estes <westes575@gmail.com>
* src/flex.skl: Commented in C style in skeleton; fixed sf#195
2015-12-10 Will Estes <westes575@gmail.com>
* .gitignore: Ignored autoscan files
2015-12-09 Will Estes <westes575@gmail.com>
* configure.ac: Checked for ranlib and strdup() at configure time
2015-12-09 Michael McConville <mmcconville@mykolab.com>
* src/flexdef.h, src/misc.c, src/tblcmp.c, to.do/unicode/flexdef.h,
to.do/unicode/misc.c, to.do/unicode/tblcmp.c: Replace zero_out()
with stdlib's memset.
2015-12-09 Michael McConville <mmcconville@mykolab.com>
* src/flex.skl: Removed memory allocation casts.
2015-12-09 Michael McConville <mmcconville@mykolab.com>
* src/flexdef.h: Removed alloca() configuration. Since alloca() is dangerous, depricated, we remove it.
2015-12-09 Michael McConville <mmcconville@mykolab.com>
* src/flexdef.h: Removed implementation of isascii(). POSIX defines isascii(), so it's likely present on anything
weactually build flex on these days.
2015-12-09 Michael McConville <mmcconville@mykolab.com>
* src/main.c, src/scanopt.c, src/tables.c: Removed NULL-checks
before free()
2015-12-08 Michael McConville <mmcconville@mykolab.com>
* src/buf.c, src/dfa.c, src/flexdef.h, src/gen.c, src/scan.l,
to.do/unicode/flexdef.h, to.do/unicode/scan.l: Removed flex_free()i,
corrected buf_destroy logic. As with flex_alloc(), replace with direct calls to free(). The function buf_destroy is now null safe and the logic was
corrected to free() correctly.
2015-12-08 Michael McConville <mmcconville@mykolab.com>
* src/filter.c, src/flexdef.h, src/misc.c, src/scan.l,
src/scanflags.c, to.do/unicode/flexdef.h, to.do/unicode/misc.c,
to.do/unicode/scan.l: Removed flex_realloc(). As with flex_alloc(), replace calls to flex_realloc(), which was
just a wrapper around realloc().
2015-12-08 Michael McConville <mmcconville@mykolab.com>
* src/buf.c, src/filter.c, src/flexdef.h, src/main.c, src/misc.c,
src/regex.c, src/scan.l, src/scanflags.c, src/sym.c,
to.do/unicode/flexdef.h, to.do/unicode/misc.c, to.do/unicode/scan.l:
Removed flex_alloc; cleaned up style. The function flex_alloc() was just a wrapper around malloc(). Since
this only added unclarity, and the flex_alloc() function is likely a
legacy of olden times, remove it in favor of calls to malloc()
directly. Style elements cleaned up: * superfluous spacing around parentheses * non-constant initialization in variable declarations * needless casts * almost all uses of assignments as subexpressions
2015-12-07 Michael McConville <mmcconville@mykolab.com>
* src/dfa.c, src/flexdef.h, src/gen.c, src/main.c, src/scan.l,
src/scanopt.c, tests/bison_nr_scanner.l,
tests/bison_yylloc_scanner.l, tests/bison_yylval_scanner.l,
tests/mem_nr.l, tests/mem_r.l, tests/pthread.l, tests/string_nr.l,
tests/string_r.l, tests/yyextra.l, to.do/unicode/scan.l: Remove
allocation casts
2015-12-07 Will Estes <westes575@gmail.com>
* src/.gitignore, src/Makefile.am: Built flex with itself. Changes in scan.l need to be built into flex with the same version
of flex in some cases. Since this build requirement is minimal, we
simply bootstrap flex unconditionally. We intentionally exclude from version control the bootstrap
artifacts as the extra copy of the lexer, the intermediate scanner
and the bootstrap executable are not of interest.
2015-12-05 Michael McConville <mmcconville@mykolab.com>
* src/buf.c, src/dfa.c, src/main.c, src/nfa.c, src/parse.y,
src/scan.l, src/scanopt.c, src/sym.c, to.do/unicode/main.c,
to.do/unicode/scan.l: Use NULL rather than (type *) 0.
2015-12-05 Michael McConville <mmcconville@mykolab.com>
* src/flexdef.h, src/misc.c, src/sym.c, to.do/unicode/flexdef.h,
to.do/unicode/misc.c: Replace copy_unsigned_string() with xstrdup(). Like copy_string(), copy_unsigned_string() is just a clone of the
stlib's strdup(). We only use it twice. I'm pretty confident that
char signedness is irrelevant in this case.
2015-12-04 Akim Demaille <akim@lrde.epita.fr>
* src/FlexLexer.h: Cleaned up white space.
2015-12-04 Akim Demaille <akim@lrde.epita.fr>
* src/FlexLexer.h: Removed struct keyword before yy_buffer_state
2015-12-04 Akim Demaille <akim@lrde.epita.fr>
* examples/testxxLexer.l, src/FlexLexer.h, src/flex.skl, src/main.c:
Replaced FLEX_STD macro with std::. The std:: construct exists as of C++98, so we can simply assume it
is supported.
2015-12-04 Akim Demaille <akim@lrde.epita.fr>
* src/Makefile.am: Generated skel.c explicitly in srcdir. Rewrote the target for skel.c to explicitly mention the srcdir. This
should help when building flex from a directory outside the flex
tree. Spread the rule out over several lines to enhance readability.
2015-12-04 Akim Demaille <akim@lrde.epita.fr>
* autogen.sh: Called glibtoolize if libtoolize run fails. On Mac OS X, libtoolize is known as glibtoolize. In cases where
libtoolize is not present, then calling glibtoolize when
bootstrapping the build system gives more folks a shot at getting
flex built from the ground up.
2015-12-02 Mightyjo <mightyjo@gmail.com>
* configure.ac: Checked for (g)texi2dvi. Better bison, help2man
checks. Added test for presence of (g)texi2dvi program. Gave notice if
texi2dvi is unavailable and set TEXI2DVI=: to avoid giving users
headaches. Enhanced tests for bison and help2man with notices when the programs
aren't found. Set their program variables to use the missing script
in build-aux since it's compatible with them.
2015-12-02 Michael McConville <mmcconville@mykolab.com>
* src/flexdef.h, src/misc.c, src/parse.y, src/scan.l, src/sym.c,
src/tables.c, to.do/unicode/flexdef.h, to.do/unicode/misc.c,
to.do/unicode/scan.l: Made string copying more standard. copy_string() was a clone of the stdlib's strdup(). For safety,
simplicity, and speed, we should use that instead. We introduce
xstrdup() which wraps strdup() in a failure upon memory allocation
errors.
2015-11-30 Serguey Parkhomovsky <sergueyparkhomovsky@gmail.com>
* src/scan.l: Error on unbalanced parentheses in rules section.
2015-11-29 Will Estes <westes575@gmail.com>
* src/Makefile.am: Cleaned up BUILT_SOURCES list. Removed reference to skel.c as a built source since other make rules
cover this case.
2015-11-29 Will Estes <westes575@gmail.com>
* src/Makefile.am: Sorted file names in flex_SOURCES
2015-11-27 Mightyjo <mightyjo@gmail.com>
* src/ecs.c, src/flexdef.h, src/main.c, src/misc.c, src/scan.l,
src/scanopt.c, src/sym.c, src/tblcmp.c: Replaced CHAR macro with
unsigned char type. Thanks to Michael McConville for pointing out that the old Char
macro causes problems with static analysis. The macro has been
removed and replaced with 'unsigned char' throughout the flex
sources. The macro is not needed at best and was confusing at worst.
It was not used in any of the example files nor was it mentioned in
the manual at all.
2015-11-21 Will Estes <westes575@gmail.com>
* configure.ac: updated syntax of AC_INIT call as per autoupdate
2015-11-21 Will Estes <westes575@gmail.com>
* tests/Makefile.am: removed extra call to a _CPPFLAGS variable
2015-05-14 Stefan Reinauer <stefan.reinauer@coreboot.org>
* src/buf.c, src/ccl.c, src/dfa.c, src/ecs.c, src/gen.c,
src/main.c, src/misc.c, src/nfa.c, src/parse.y, src/scan.l,
src/scanopt.c, src/sym.c, src/tblcmp.c: Switch function definitions
from mixed K&R to consistent ANSI C. flex was using K&R function definitions for some functions and ANSI
C style in others, sometimes even in the same file. Change the code
to consistently use ANSI C. Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
2015-11-16 Mightyjo <mightyjo@gmail.com>
* tests/Makefile.am: Used in-tree header file for c++ tests.