Fix memory corruption when removing certain bans from a channel.
[srvx.git] / ChangeLog
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..24339ece9862d320937912270d2f13b1d55c4e3e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -0,0 +1,443 @@
+# do not edit -- automatically generated by arch changelog
+# arch-tag: automatic-ChangeLog--srvx@srvx.net--2005-srvx/srvx--devo--1.3
+#
+
+2005-02-08 04:42:43 GMT        Michael Poole <mdpoole@troilus.org>     patch-16
+
+    Summary:
+      Fix memory corruption when removing certain bans from a channel.
+    Revision:
+      srvx--devo--1.3--patch-16
+
+    src/proto-common.c (mod_chanmode_apply): Make sure we get a pointer to
+    the ban we want to deallocate BEFORE we remove it from the banlist.
+
+    modified files:
+     ChangeLog src/proto-common.c
+
+
+2005-02-05 13:03:21 GMT        Michael Poole <mdpoole@troilus.org>     patch-15
+
+    Summary:
+      Rearrange slab allocation header; minor slab fixes.
+    Revision:
+      srvx--devo--1.3--patch-15
+
+    src/alloc-slab.c (ALLOC_MAGIC, FREE_MAGIC): Replace with single-byte values.
+    (struct alloc_header): Move file_id and line into second 32-bit word
+    of header.
+    (slab_alloc): Remove commented-out debug statements.
+    (slab_unalloc): Remove memset() of freed block and commented-out debug
+    statements.
+    (slab_free): memset() freed blocks here instead.  Try to fix
+    *_alloc_size counting errors (use the originally requested length
+    rather than rounded-up length)
+
+    modified files:
+     ChangeLog src/alloc-slab.c
+
+
+2005-02-05 03:52:51 GMT        Michael Poole <mdpoole@troilus.org>     patch-14
+
+    Summary:
+      Even more slab allocator updates.
+    Revision:
+      srvx--devo--1.3--patch-14
+
+    src/slab-alloc.c (SLAB_DEBUG): Default to on.
+    (SMALL_CUTOFF): Fix default value (must be a multiple of 4).
+    (slab_unalloc): Fix slab counting.  When SLAB_RESERVE, allocate the
+    set of pages in a burst, rather than supplementing them as we unmap.
+    (slab_realloc): Fix a rather embarassing (and LARGE) memory leak.
+
+    modified files:
+     ChangeLog src/alloc-slab.c
+
+
+2005-02-04 16:36:40 GMT        Michael Poole <mdpoole@troilus.org>     patch-13
+
+    Summary:
+      more debugging updates
+    Revision:
+      srvx--devo--1.3--patch-13
+
+    src/alloc-slab.c: Switch free slab list from a stack to queue, and
+    make sure there are SLAB_RESERVE in the queue before an old slab is
+    dereferenced.  This causes a fault when dereferencing stale pointers
+    to the last SLAB_RESERVE full slabs.
+    
+    src/log.c: Make struct logEntry *last static, to make sure gcc does
+    not optimize it away.
+
+    modified files:
+     ChangeLog src/alloc-slab.c src/log.c
+
+
+2005-01-31 22:28:59 GMT        Michael Poole <mdpoole@troilus.org>     patch-12
+
+    Summary:
+      More slab allocator updates.
+    Revision:
+      srvx--devo--1.3--patch-12
+
+    src/alloc-slab.c: Disable extra debugging by default.  Add more
+    statistics counters.  Change element type of little_slabs[].  Keep a
+    global list of unused (full) slab pages, rather than per-slab.
+    Various other cleanups and fixes.
+    
+    src/chanserv.h: Can only be off-channel with off_channel > 1.
+    
+    src/main.c: Update years in copyright notice.
+    
+    src/opserv.c: Remove OSMSG_STATS_MEMORY.  Make cmd_stats_memory()
+    allocator-specific.
+
+    modified files:
+     ChangeLog src/alloc-slab.c src/chanserv.h src/main.c
+     src/opserv.c
+
+
+2005-01-31 11:08:15 GMT        Michael Poole <mdpoole@troilus.org>     patch-11
+
+    Summary:
+      Add "?stats memory" and optional alloc_header to slab.
+    Revision:
+      srvx--devo--1.3--patch-11
+
+    src/alloc-slab.c: Add alloc_header (but no redzone) debug support,
+    enabled by default.  Update alloc_count and alloc_size.
+    
+    src/opserv.c: Provide "stats memory" command for slab allocator.
+
+    modified files:
+     ChangeLog src/alloc-slab.c src/opserv.c
+
+
+2005-01-31 05:14:52 GMT        Michael Poole <mdpoole@troilus.org>     patch-10
+
+    Summary:
+      Add slab allocator; reduce delta with srvx-gs.
+    Revision:
+      srvx--devo--1.3--patch-10
+
+    configure.in: Check for getpagesize().  Support --with-malloc=slab.
+    
+    src/Makefile.am: Add alloc-slab.c as an extra source file.
+    
+    src/alloc-srvx.c: Clean up srvx_free() slightly.  Check for previously
+    allocated blocks.
+    
+    srvx.conf.example, src/chanserv.c, src/main.c, src/modcmd.c,
+    src/proto-p10.c: Apply patches to bring closer to srvx-gs branch.
+    
+    src/log.c: Assert and _exit() on fatal log messages.
+    
+    src/opserv.c: Clarify logic for modes to set on join floods.
+    
+    src/proto-common.c: Accept off-channel commands in registered channels.
+
+    new files:
+     src/.arch-ids/alloc-slab.c.id src/alloc-slab.c
+
+    modified files:
+     ChangeLog configure.in src/Makefile.am src/alloc-srvx.c
+     src/chanserv.c src/chanserv.h src/common.h src/hash.h
+     src/helpfile.c src/log.c src/main.c src/modcmd.c src/opserv.c
+     src/proto-common.c src/proto-p10.c srvx.conf.example
+
+
+2005-01-26 21:16:54 GMT        Michael Poole <mdpoole@troilus.org>     patch-9
+
+    Summary:
+      offchannel fixes; more memory verification
+    Revision:
+      srvx--devo--1.3--patch-9
+
+    src/chanserv.c (cmd_register): Do not join channels if the default
+    options include being offchannel.
+    
+    src/common.h: Verify list allocations when appending or removing.
+    
+    src/hash.c (GetUserMode): Verify channel and user list allocations.
+    
+    src/log.c (log_entry_search): Keep pointer to last visited log entry.
+    
+    src/proto-p10.c (mod_chanmode_parse): Fail if trying to change +z when
+    passed MCP_REGISTERED.
+
+    modified files:
+     ChangeLog src/chanserv.c src/common.h src/hash.c src/log.c
+     src/proto-p10.c
+
+
+2005-01-24 17:12:38 GMT        Michael Poole <mdpoole@troilus.org>     patch-8
+
+    Summary:
+      typo fix in alloc-srvx.c; avoid dereferencing free()'d bans
+    Revision:
+      srvx--devo--1.3--patch-8
+
+    src/alloc-srvx.c (srvx_realloc): Fix argument list to srvx_free().
+    
+    src/chanserv.c (find_matching_bans): Make temporary copies of bans to
+    be removed.  Double-check remove count at end of loop.
+    (unban_user, cmd_open): Free the string copies.
+    (cmd_unbanall): Make temporary copies of removed bans and free them.
+    (handle_mode): Likewise.
+    
+    src/opserv.c (cmd_clearbans): Likewise.
+
+    modified files:
+     ChangeLog src/alloc-srvx.c src/chanserv.c src/opserv.c
+
+
+2005-01-24 16:45:44 GMT        Michael Poole <mdpoole@troilus.org>     patch-7
+
+    Summary:
+      More allocation debugging support.
+    Revision:
+      srvx--devo--1.3--patch-7
+
+    src/alloc-srvx.c (srvx_realloc): Reorganize.
+    (verify): New function.
+    
+    src/common.h (verify): Define and/or declare suitably.
+    
+    src/dict-splay.c (dict_splay): Verify node at each iteration.
+    (dict_insert, dict_remove2, dict_find, dict_delete,
+    dict_sanity_check): Verify entire dict.
+    (dict_sanity_check_node): Verify node as valid allocation.
+    
+    src/hash.c (DelChannel): Verify channel before deletion.
+    (GetUserMode): Verify channel, user, and each modeNode.
+    
+    src/mod-sockcheck.c (sockcheck_free_client): Verify client.
+    (sockcheck_timeout_client, sockcheck_advance, sockcheck_readable,
+    sockcheck_connected, sockcheck_begin_test): Likewise.
+    (sockcheck_queue_address): Verify cached sockcheck entries.
+    
+    src/proto-p10.c (DelUser): Verify user before deletion.
+
+    modified files:
+     ChangeLog src/alloc-srvx.c src/common.h src/dict-splay.c
+     src/hash.c src/mod-sockcheck.c src/proto-p10.c
+
+
+2005-01-21 15:10:49 GMT        Michael Poole <mdpoole@troilus.org>     patch-6
+
+    Summary:
+      More debug allocator fixes and enhancements
+    Revision:
+      srvx--devo--1.3--patch-6
+
+    src/alloc-srvx.c (*_MAGIC): ASk recognized the CCSDS ASM sequence.
+    (srvx_free): Overwrite with 0xDE bytes to distinguish from
+    uninitialized values.  As SailorFrag suggested, only overwrite the
+    user region.
+    
+    src/dict-splay.c (dict_insert): Check whether free functions need to
+    be worked around here as well.
+
+    modified files:
+     ChangeLog src/alloc-srvx.c src/dict-splay.c
+
+
+2005-01-21 00:48:35 GMT        Michael Poole <mdpoole@troilus.org>     patch-5
+
+    Summary:
+      Add redzone and statistics reporting to debug allocator.
+    Revision:
+      srvx--devo--1.3--patch-5
+
+    src/alloc-srvx.c (redzone): New variable to detect buffer overwrites.
+    (alloc_count, alloc_size): New variables to track allocation stats.
+    (srvx_malloc, srvx_realloc, srvx_free): Use the above.
+    
+    src/opserv.c (OSMSG_STATS_MEMORY): New translation string.
+    (cmd_stats_memory): New (conditional) command function.
+    (init_opserv): Conditionally provide cmd_stats_memory.
+
+    modified files:
+     ChangeLog src/alloc-srvx.c src/opserv.c
+
+
+2005-01-20 23:41:17 GMT        Michael Poole <mdpoole@troilus.org>     patch-4
+
+    Summary:
+      Add built-in debug malloc wrapper.
+    Revision:
+      srvx--devo--1.3--patch-4
+
+    TODO: Remove the completed TODO item.
+    
+    configure.in: Add --with-malloc=srvx support.
+    
+    src/Makefile.am: Add alloc-srvx.c to extra sources.
+    
+    src/common.h: Reindent debug malloc directives; add directives for
+    WITH_MALLOC_SRVX.
+    
+    src/dict-splay.c: Kludge around free() as macro vs function.
+
+    new files:
+     src/.arch-ids/alloc-srvx.c.id src/alloc-srvx.c
+
+    modified files:
+     ChangeLog TODO configure.in src/Makefile.am src/common.h
+     src/dict-splay.c
+
+
+2005-01-20 22:51:54 GMT        Michael Poole <mdpoole@troilus.org>     patch-3
+
+    Summary:
+      various bugfixes and IPv6 preparation work
+    Revision:
+      srvx--devo--1.3--patch-3
+
+    src/modcmd.c (modcmd_privmsg): Fix CTCP PING response type.
+    
+    src/opserv.help: Add column headers for command lists.
+    
+    src/tools.c (is_gline, split_ircmask): Accept colons in hostnames.
+
+    modified files:
+     ChangeLog src/modcmd.c src/opserv.help src/tools.c
+
+
+2005-01-05 01:03:05 GMT        Michael Poole <mdpoole@troilus.org>     patch-2
+
+    Summary:
+      Add MODE_REGISTERED as +z for P10.
+    Revision:
+      srvx--devo--1.3--patch-2
+
+    Add MODE_REGISTERED as +z for P10.
+
+    modified files:
+     ChangeLog src/proto-p10.c
+
+
+2005-01-04 19:35:57 GMT        Michael Poole <mdpoole@troilus.org>     patch-1
+
+    Summary:
+      Rotate ChangeLog for new repository; clarify documentation files
+    Revision:
+      srvx--devo--1.3--patch-1
+
+    Rotate ChangeLog to show changes for srvx@srvx.net--2005-srvx repo.
+    
+    Fix various file permissions to 664 instead of 620.
+    
+    Update FAQ and TODO.  Add UPGRADE file to arch and to distribution.
+
+    new files:
+     .arch-ids/ChangeLog.id .arch-ids/UPGRADE.id ChangeLog UPGRADE
+
+    removed files:
+     .arch-ids/ChangeLog.id ChangeLog
+
+    modified files:
+     FAQ INSTALL Makefile.am TODO languages/de/chanserv.help
+     languages/de/global.help languages/de/modcmd.help
+     languages/de/nickserv.help languages/de/strings.db
+     languages/en_UK/chanserv.help languages/en_UK/strings.db
+     src/chanserv.help
+
+
+2005-01-04 19:16:14 GMT        Michael Poole <mdpoole@troilus.org>     base-0
+
+    Summary:
+      tag of srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-84
+    Revision:
+      srvx--devo--1.3--base-0
+
+    (automatically generated log message)
+
+    new patches:
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--base-0
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-1
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-2
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-3
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-4
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-5
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-6
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-7
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-8
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-9
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-10
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-11
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-12
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-13
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-14
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-15
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-16
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-17
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-18
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-19
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-20
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-21
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-22
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-23
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-24
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-25
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-26
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-27
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-28
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-29
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-30
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-31
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-32
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-33
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-34
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-35
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-36
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-37
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-38
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-39
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-40
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-41
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-42
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-43
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-44
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-45
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-46
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-47
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-48
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-49
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-50
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-51
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-52
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-53
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-54
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-55
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-56
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-57
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-58
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-59
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-60
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-61
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-62
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-63
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-64
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-65
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-66
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-67
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-68
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-69
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-70
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-71
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-72
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-73
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-74
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-75
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-76
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-77
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-78
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-79
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-80
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-81
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-82
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-83
+     srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-84
+
+