Fix memory corruption when removing certain bans from a channel.
[srvx.git] / ChangeLog
1 # do not edit -- automatically generated by arch changelog
2 # arch-tag: automatic-ChangeLog--srvx@srvx.net--2005-srvx/srvx--devo--1.3
3 #
4
5 2005-02-08 04:42:43 GMT Michael Poole <mdpoole@troilus.org>     patch-16
6
7     Summary:
8       Fix memory corruption when removing certain bans from a channel.
9     Revision:
10       srvx--devo--1.3--patch-16
11
12     src/proto-common.c (mod_chanmode_apply): Make sure we get a pointer to
13     the ban we want to deallocate BEFORE we remove it from the banlist.
14
15     modified files:
16      ChangeLog src/proto-common.c
17
18
19 2005-02-05 13:03:21 GMT Michael Poole <mdpoole@troilus.org>     patch-15
20
21     Summary:
22       Rearrange slab allocation header; minor slab fixes.
23     Revision:
24       srvx--devo--1.3--patch-15
25
26     src/alloc-slab.c (ALLOC_MAGIC, FREE_MAGIC): Replace with single-byte values.
27     (struct alloc_header): Move file_id and line into second 32-bit word
28     of header.
29     (slab_alloc): Remove commented-out debug statements.
30     (slab_unalloc): Remove memset() of freed block and commented-out debug
31     statements.
32     (slab_free): memset() freed blocks here instead.  Try to fix
33     *_alloc_size counting errors (use the originally requested length
34     rather than rounded-up length)
35
36     modified files:
37      ChangeLog src/alloc-slab.c
38
39
40 2005-02-05 03:52:51 GMT Michael Poole <mdpoole@troilus.org>     patch-14
41
42     Summary:
43       Even more slab allocator updates.
44     Revision:
45       srvx--devo--1.3--patch-14
46
47     src/slab-alloc.c (SLAB_DEBUG): Default to on.
48     (SMALL_CUTOFF): Fix default value (must be a multiple of 4).
49     (slab_unalloc): Fix slab counting.  When SLAB_RESERVE, allocate the
50     set of pages in a burst, rather than supplementing them as we unmap.
51     (slab_realloc): Fix a rather embarassing (and LARGE) memory leak.
52
53     modified files:
54      ChangeLog src/alloc-slab.c
55
56
57 2005-02-04 16:36:40 GMT Michael Poole <mdpoole@troilus.org>     patch-13
58
59     Summary:
60       more debugging updates
61     Revision:
62       srvx--devo--1.3--patch-13
63
64     src/alloc-slab.c: Switch free slab list from a stack to queue, and
65     make sure there are SLAB_RESERVE in the queue before an old slab is
66     dereferenced.  This causes a fault when dereferencing stale pointers
67     to the last SLAB_RESERVE full slabs.
68     
69     src/log.c: Make struct logEntry *last static, to make sure gcc does
70     not optimize it away.
71
72     modified files:
73      ChangeLog src/alloc-slab.c src/log.c
74
75
76 2005-01-31 22:28:59 GMT Michael Poole <mdpoole@troilus.org>     patch-12
77
78     Summary:
79       More slab allocator updates.
80     Revision:
81       srvx--devo--1.3--patch-12
82
83     src/alloc-slab.c: Disable extra debugging by default.  Add more
84     statistics counters.  Change element type of little_slabs[].  Keep a
85     global list of unused (full) slab pages, rather than per-slab.
86     Various other cleanups and fixes.
87     
88     src/chanserv.h: Can only be off-channel with off_channel > 1.
89     
90     src/main.c: Update years in copyright notice.
91     
92     src/opserv.c: Remove OSMSG_STATS_MEMORY.  Make cmd_stats_memory()
93     allocator-specific.
94
95     modified files:
96      ChangeLog src/alloc-slab.c src/chanserv.h src/main.c
97      src/opserv.c
98
99
100 2005-01-31 11:08:15 GMT Michael Poole <mdpoole@troilus.org>     patch-11
101
102     Summary:
103       Add "?stats memory" and optional alloc_header to slab.
104     Revision:
105       srvx--devo--1.3--patch-11
106
107     src/alloc-slab.c: Add alloc_header (but no redzone) debug support,
108     enabled by default.  Update alloc_count and alloc_size.
109     
110     src/opserv.c: Provide "stats memory" command for slab allocator.
111
112     modified files:
113      ChangeLog src/alloc-slab.c src/opserv.c
114
115
116 2005-01-31 05:14:52 GMT Michael Poole <mdpoole@troilus.org>     patch-10
117
118     Summary:
119       Add slab allocator; reduce delta with srvx-gs.
120     Revision:
121       srvx--devo--1.3--patch-10
122
123     configure.in: Check for getpagesize().  Support --with-malloc=slab.
124     
125     src/Makefile.am: Add alloc-slab.c as an extra source file.
126     
127     src/alloc-srvx.c: Clean up srvx_free() slightly.  Check for previously
128     allocated blocks.
129     
130     srvx.conf.example, src/chanserv.c, src/main.c, src/modcmd.c,
131     src/proto-p10.c: Apply patches to bring closer to srvx-gs branch.
132     
133     src/log.c: Assert and _exit() on fatal log messages.
134     
135     src/opserv.c: Clarify logic for modes to set on join floods.
136     
137     src/proto-common.c: Accept off-channel commands in registered channels.
138
139     new files:
140      src/.arch-ids/alloc-slab.c.id src/alloc-slab.c
141
142     modified files:
143      ChangeLog configure.in src/Makefile.am src/alloc-srvx.c
144      src/chanserv.c src/chanserv.h src/common.h src/hash.h
145      src/helpfile.c src/log.c src/main.c src/modcmd.c src/opserv.c
146      src/proto-common.c src/proto-p10.c srvx.conf.example
147
148
149 2005-01-26 21:16:54 GMT Michael Poole <mdpoole@troilus.org>     patch-9
150
151     Summary:
152       offchannel fixes; more memory verification
153     Revision:
154       srvx--devo--1.3--patch-9
155
156     src/chanserv.c (cmd_register): Do not join channels if the default
157     options include being offchannel.
158     
159     src/common.h: Verify list allocations when appending or removing.
160     
161     src/hash.c (GetUserMode): Verify channel and user list allocations.
162     
163     src/log.c (log_entry_search): Keep pointer to last visited log entry.
164     
165     src/proto-p10.c (mod_chanmode_parse): Fail if trying to change +z when
166     passed MCP_REGISTERED.
167
168     modified files:
169      ChangeLog src/chanserv.c src/common.h src/hash.c src/log.c
170      src/proto-p10.c
171
172
173 2005-01-24 17:12:38 GMT Michael Poole <mdpoole@troilus.org>     patch-8
174
175     Summary:
176       typo fix in alloc-srvx.c; avoid dereferencing free()'d bans
177     Revision:
178       srvx--devo--1.3--patch-8
179
180     src/alloc-srvx.c (srvx_realloc): Fix argument list to srvx_free().
181     
182     src/chanserv.c (find_matching_bans): Make temporary copies of bans to
183     be removed.  Double-check remove count at end of loop.
184     (unban_user, cmd_open): Free the string copies.
185     (cmd_unbanall): Make temporary copies of removed bans and free them.
186     (handle_mode): Likewise.
187     
188     src/opserv.c (cmd_clearbans): Likewise.
189
190     modified files:
191      ChangeLog src/alloc-srvx.c src/chanserv.c src/opserv.c
192
193
194 2005-01-24 16:45:44 GMT Michael Poole <mdpoole@troilus.org>     patch-7
195
196     Summary:
197       More allocation debugging support.
198     Revision:
199       srvx--devo--1.3--patch-7
200
201     src/alloc-srvx.c (srvx_realloc): Reorganize.
202     (verify): New function.
203     
204     src/common.h (verify): Define and/or declare suitably.
205     
206     src/dict-splay.c (dict_splay): Verify node at each iteration.
207     (dict_insert, dict_remove2, dict_find, dict_delete,
208     dict_sanity_check): Verify entire dict.
209     (dict_sanity_check_node): Verify node as valid allocation.
210     
211     src/hash.c (DelChannel): Verify channel before deletion.
212     (GetUserMode): Verify channel, user, and each modeNode.
213     
214     src/mod-sockcheck.c (sockcheck_free_client): Verify client.
215     (sockcheck_timeout_client, sockcheck_advance, sockcheck_readable,
216     sockcheck_connected, sockcheck_begin_test): Likewise.
217     (sockcheck_queue_address): Verify cached sockcheck entries.
218     
219     src/proto-p10.c (DelUser): Verify user before deletion.
220
221     modified files:
222      ChangeLog src/alloc-srvx.c src/common.h src/dict-splay.c
223      src/hash.c src/mod-sockcheck.c src/proto-p10.c
224
225
226 2005-01-21 15:10:49 GMT Michael Poole <mdpoole@troilus.org>     patch-6
227
228     Summary:
229       More debug allocator fixes and enhancements
230     Revision:
231       srvx--devo--1.3--patch-6
232
233     src/alloc-srvx.c (*_MAGIC): ASk recognized the CCSDS ASM sequence.
234     (srvx_free): Overwrite with 0xDE bytes to distinguish from
235     uninitialized values.  As SailorFrag suggested, only overwrite the
236     user region.
237     
238     src/dict-splay.c (dict_insert): Check whether free functions need to
239     be worked around here as well.
240
241     modified files:
242      ChangeLog src/alloc-srvx.c src/dict-splay.c
243
244
245 2005-01-21 00:48:35 GMT Michael Poole <mdpoole@troilus.org>     patch-5
246
247     Summary:
248       Add redzone and statistics reporting to debug allocator.
249     Revision:
250       srvx--devo--1.3--patch-5
251
252     src/alloc-srvx.c (redzone): New variable to detect buffer overwrites.
253     (alloc_count, alloc_size): New variables to track allocation stats.
254     (srvx_malloc, srvx_realloc, srvx_free): Use the above.
255     
256     src/opserv.c (OSMSG_STATS_MEMORY): New translation string.
257     (cmd_stats_memory): New (conditional) command function.
258     (init_opserv): Conditionally provide cmd_stats_memory.
259
260     modified files:
261      ChangeLog src/alloc-srvx.c src/opserv.c
262
263
264 2005-01-20 23:41:17 GMT Michael Poole <mdpoole@troilus.org>     patch-4
265
266     Summary:
267       Add built-in debug malloc wrapper.
268     Revision:
269       srvx--devo--1.3--patch-4
270
271     TODO: Remove the completed TODO item.
272     
273     configure.in: Add --with-malloc=srvx support.
274     
275     src/Makefile.am: Add alloc-srvx.c to extra sources.
276     
277     src/common.h: Reindent debug malloc directives; add directives for
278     WITH_MALLOC_SRVX.
279     
280     src/dict-splay.c: Kludge around free() as macro vs function.
281
282     new files:
283      src/.arch-ids/alloc-srvx.c.id src/alloc-srvx.c
284
285     modified files:
286      ChangeLog TODO configure.in src/Makefile.am src/common.h
287      src/dict-splay.c
288
289
290 2005-01-20 22:51:54 GMT Michael Poole <mdpoole@troilus.org>     patch-3
291
292     Summary:
293       various bugfixes and IPv6 preparation work
294     Revision:
295       srvx--devo--1.3--patch-3
296
297     src/modcmd.c (modcmd_privmsg): Fix CTCP PING response type.
298     
299     src/opserv.help: Add column headers for command lists.
300     
301     src/tools.c (is_gline, split_ircmask): Accept colons in hostnames.
302
303     modified files:
304      ChangeLog src/modcmd.c src/opserv.help src/tools.c
305
306
307 2005-01-05 01:03:05 GMT Michael Poole <mdpoole@troilus.org>     patch-2
308
309     Summary:
310       Add MODE_REGISTERED as +z for P10.
311     Revision:
312       srvx--devo--1.3--patch-2
313
314     Add MODE_REGISTERED as +z for P10.
315
316     modified files:
317      ChangeLog src/proto-p10.c
318
319
320 2005-01-04 19:35:57 GMT Michael Poole <mdpoole@troilus.org>     patch-1
321
322     Summary:
323       Rotate ChangeLog for new repository; clarify documentation files
324     Revision:
325       srvx--devo--1.3--patch-1
326
327     Rotate ChangeLog to show changes for srvx@srvx.net--2005-srvx repo.
328     
329     Fix various file permissions to 664 instead of 620.
330     
331     Update FAQ and TODO.  Add UPGRADE file to arch and to distribution.
332
333     new files:
334      .arch-ids/ChangeLog.id .arch-ids/UPGRADE.id ChangeLog UPGRADE
335
336     removed files:
337      .arch-ids/ChangeLog.id ChangeLog
338
339     modified files:
340      FAQ INSTALL Makefile.am TODO languages/de/chanserv.help
341      languages/de/global.help languages/de/modcmd.help
342      languages/de/nickserv.help languages/de/strings.db
343      languages/en_UK/chanserv.help languages/en_UK/strings.db
344      src/chanserv.help
345
346
347 2005-01-04 19:16:14 GMT Michael Poole <mdpoole@troilus.org>     base-0
348
349     Summary:
350       tag of srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-84
351     Revision:
352       srvx--devo--1.3--base-0
353
354     (automatically generated log message)
355
356     new patches:
357      srvx@srvx.net--2004-srvx/srvx--devo--1.3--base-0
358      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-1
359      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-2
360      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-3
361      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-4
362      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-5
363      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-6
364      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-7
365      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-8
366      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-9
367      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-10
368      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-11
369      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-12
370      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-13
371      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-14
372      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-15
373      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-16
374      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-17
375      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-18
376      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-19
377      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-20
378      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-21
379      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-22
380      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-23
381      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-24
382      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-25
383      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-26
384      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-27
385      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-28
386      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-29
387      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-30
388      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-31
389      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-32
390      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-33
391      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-34
392      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-35
393      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-36
394      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-37
395      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-38
396      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-39
397      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-40
398      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-41
399      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-42
400      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-43
401      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-44
402      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-45
403      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-46
404      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-47
405      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-48
406      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-49
407      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-50
408      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-51
409      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-52
410      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-53
411      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-54
412      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-55
413      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-56
414      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-57
415      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-58
416      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-59
417      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-60
418      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-61
419      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-62
420      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-63
421      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-64
422      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-65
423      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-66
424      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-67
425      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-68
426      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-69
427      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-70
428      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-71
429      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-72
430      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-73
431      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-74
432      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-75
433      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-76
434      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-77
435      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-78
436      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-79
437      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-80
438      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-81
439      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-82
440      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-83
441      srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-84
442
443