Fixes for CVE-2006-6235
[gnupg.git] / jnlib / ChangeLog
1 2006-11-29  Werner Koch  <wk@g10code.com>
2
3         * utf8conv.c (set_native_charset) [HAVE_W32_SYSTEM]: Fixed typo in
4         macro name.
5
6 2006-11-15  Werner Koch  <wk@g10code.com>
7
8         * logging.c (my_funopen_hook_ret_t): New.
9         (fun_writer): Use it.
10
11 2006-10-19  Werner Koch  <wk@g10code.com>
12
13         * stringhelp.c (memrchr) [!HAVE_MEMRCHR]: Provide a replacement.
14
15 2006-09-27  Werner Koch  <wk@g10code.com>
16
17         * mischelp.c: New.
18         (timegm): Copied from gnupg 1.4, changed from GPL to LGPL.  Fixed
19         a memory leak.
20
21         * stringhelp.h (isascii): New.
22
23         * stringhelp.c (strsep): New. Copied from gnupg 1.4.5
24         util/strgutil.c.
25
26         * strlist.h (STRLIST): Removed deprecated typedef. 
27
28         * types.h: Made cpp commands work with old compilers.  Also shows
29         up nicer with Emacs' font locking.
30
31         * w32-afunix.c (_w32_sock_connect): Set ERRNO for an invalid port.
32
33         Changed license from GPL to LGPL.  Note that all code has either
34         been written by me, David, employees of g10 Code or taken from
35         glibc.
36         
37         * libjnlib-config.h, stringhelp.c, stringhelp.h:
38         * strlist.c, strlist.h, utf8conv.c, utf8conv.h:
39         * argparse.c, argparse.h, logging.c, logging.h:
40         * dotlock.c, dotlock.h, types.h, mischelp.h:
41         * xmalloc.c, xmalloc.h, w32-pth.c, w32-pth.h:
42         * w32-afunix.c, w32-afunix.h: Tagged them to be long to jnlib
43         which is a part of GnuPG but also used by other projetcs. 
44
45 2006-09-22  Werner Koch  <wk@g10code.com>
46
47         * utf8conv.c: Reworked to match the gnupg 1.4.5 code.  This now
48         requires iconv support but this is reasonable for all modern
49         systems.
50
51 2006-08-29  Werner Koch  <wk@g10code.com>
52
53         * logging.c (do_logv): Emit a missing LF for fatal errors.
54
55 2006-06-28  Werner Koch  <wk@g10code.com>
56
57         * dotlock.c (make_dotlock, release_dotlock, read_lockfile)
58         (maybe_deadlock, destroy_dotlock, create_dotlock): Re-indented.
59         (create_dotlock): Repalces some log_fatal by log_error as it was
60         not intended that they should terminate.  Write the nodename to
61         the locking file. Code cleanups.
62         (read_lockfile): Reworked to read the node name.
63         (make_dotlock): Test for identical node name and delete lock stale
64         file.
65         (release_dotlock): Likewise.
66
67 2006-05-23  Werner Koch  <wk@g10code.com>
68
69         * libjnlib-config.h (JNLIB_NEED_UTF8CONV): Fixed typo in name.
70
71         * dotlock.c (release_dotlock): Don't act if we don't have any
72         locks at all.
73         (destroy_dotlock): New.  From 1.4.3.
74         (dotlock_remove_lockfiles): Make use of destroy function.
75
76 2006-05-19  Werner Koch  <wk@g10code.com>
77
78         * strlist.c (append_to_strlist2): Enabled.
79
80         * stringhelp.c (print_sanitized_buffer2): New.  Changed the rules
81         to match the behaviour of print_string2 from gnupg 1.4.3.
82         (print_sanitized_buffer): Use the new function.
83         (print_sanitized_string2): New.
84         (hextobyte): New.  Taken from gpg 1.4.3.
85
86 2006-04-28  Werner Koch  <wk@g10code.com>
87
88         * stringhelp.c (print_sanitized_buffer): Fix bug where the count
89         got wrong for the \xNN representation.
90         (sanitize_buffer): Fix bug where some control characters lose part
91         of their \xNN representation.
92
93 2006-04-20  Werner Koch  <wk@g10code.com>
94
95         * stringhelp.c (make_basename): New arg INPUTPATH for future
96         riscos compatibility.
97
98 2006-04-18  Werner Koch  <wk@g10code.com>
99
100         * libjnlib-config.h (JNLIB_NEED_UTF8CONF): Defined.
101         * strlist.c (add_to_strlist2) [JNLIB_NEED_UTF8CONV]: Enabled.
102
103 2005-06-15  Werner Koch  <wk@g10code.com>
104
105         * stringhelp.c (sanitize_buffer): Make P a void*.
106         (ascii_memistr, memistr): Ditto.
107         (ascii_memcasecmp): Ditto.
108         * logging.c (writen): Use void * for arg BUFFER.
109         * stringhelp.c (memistr): Fixed unsigned/signed pointer conflict.
110         (ascii_memistr): Ditto.
111         (ascii_memcasemem): Ditto.
112         * utf8conv.c (utf8_to_native): Ditto.
113         (utf8_to_native): Ditto.
114         * argparse.c (show_version): Removed non-required cast.
115
116 2005-01-19  Werner Koch  <wk@g10code.com>
117
118         * logging.c (fun_writer): Don't fallback to stderr. Print to
119         stderr only if connected to a tty.
120
121 2004-12-20  Werner Koch  <wk@g10code.com>
122
123         * w32-pth.c (do_pth_event_free): The events are hold in a ring
124         buffer.  Adjust for that.
125         (do_pth_event_body): Ditto.
126         (pth_event_isolate): Ditto.
127         (do_pth_wait): Ditto.
128         (_pth_event_count): Renamed to ..
129         (event_count): .. and adjusted as above.
130         (pth_init): Define 3 debug levels and change all debug calls to
131         make use of them.  This makes the moule now silent.
132
133 2004-12-19  Werner Koch  <wk@g10code.com>
134
135         * w32-pth.c (pth_init): Enable debugging depending on env var.
136         (pth_self): New.
137         (pth_mutex_release, pth_mutex_acquire): Implemented directly using
138         the W32 API.
139
140 2004-12-18  Werner Koch  <wk@g10code.com>
141
142         * w32-pth.c (pth_init): Reverse return values.  Use TRUE and FALSE
143         constants.
144         (pth_kill, pth_mutex_acquire, pth_attr_set, pth_join, pth_cancel):
145         Ditto.
146
147 2004-12-15  Werner Koch  <wk@g10code.com>
148
149         * logging.c [W32]: Don't include unavailable headers.
150
151 2004-12-14  Werner Koch  <wk@g10code.com>
152
153         * w32-pth.c (_pth_strerror): Renamed to ...
154         (w32_strerror): .. this. And let callers provide a buffer.
155         (spawn_helper_thread): Removed HD arg and hardwire the stack size
156         to 32k.
157         (do_pth_wait): Removed use of ATTR; not needed for the helper
158         threads.
159         (helper_thread): Renamed to ..
160         (launch_thread): .. this.  Release handle if not joinable.
161         (struct pth_priv_hd_s): Renamed to ...
162         (struct thread_info_s): .. this.  Add member JOINABLE and TH.
163
164 2004-12-14  Timo Schulz  <twoaday@g10code.com>
165
166         * w32-pth.c (pth_kill): Just release the crit section if
167         pth_init was really called. And set all handles to NULL.
168         (_pth_strerror): New.
169         (do_pth_wait): Before we enter the loop we check if there
170         are too much events in the ring.
171         
172 2004-12-14  Werner Koch  <wk@g10code.com>
173
174         * w32-pth.h (pth_event_occured): Removed macro. 
175         * w32-pth.c: Fixed license statement; its under the LGPL.
176         (enter_pth, leave_pth): Use them to bracket almost all public
177         functions.
178
179 2004-12-13  Timo Schulz  <twoaday@g10code.com>
180
181         * w32-pth.c (enter_pth, leave_pth): New.
182         (pth_init): Initialize global mutex section.
183         (pth_kill): Release global mutex section.
184         (helper_thread): New.
185         (pth_spawn): Make sure only one thread is running.
186         
187 2004-12-13  Werner Koch  <wk@g10code.com>
188
189         * stringhelp.c (w32_strerror) [W32]: New.
190
191         * w32-pth.c, w32-pth.h: Added real code written by Timo Schulz.
192         Not finished, though.
193
194 2004-12-07  Werner Koch  <wk@g10code.com>
195
196         * w32-pth.c, w32-pth.h: New.
197
198 2004-11-26  Werner Koch  <wk@g10code.com>
199
200         * logging.c [_WIN32]: Don't include socket headers.
201
202 2004-11-30  Timo Schulz  <ts@g10code.com>
203
204         * w32-afunix.c: New. AF_UNIX emulation for W32.
205         * w32-afunix.h: Likewise.
206         
207 2004-11-22  Werner Koch  <wk@g10code.com>
208
209         * logging.c (log_test_fd): Add test on LOGSTREAM.  Reported by
210         Barry Schwartz.
211
212 2004-11-18  Werner Koch  <wk@g10code.com>
213
214         * logging.c: Explicitly include sys/stat.h for the S_I* constants.
215
216 2004-10-21  Werner Koch  <wk@g10code.com>
217
218         * logging.c (do_logv): Use set_log_stream to setup a default.
219         (log_set_file): Factored code out to ..
220         (set_file_fd): .. New function to allow using a file descriptor.
221         (log_set_fd): Make use of new fucntion.
222         (fun_writer): Reworked.
223
224 2004-08-18  Werner Koch  <wk@g10code.de>
225
226         * stringhelp.c (print_sanitized_utf8_string): Actually implement
227         it.
228
229 2004-06-21  Werner Koch  <wk@g10code.com>
230
231         * logging.c (log_set_file): Do not close an old logstream if it
232         used to be stderr or stdout.
233
234 2004-05-05  Werner Koch  <wk@gnupg.org>
235
236         * logging.c (log_set_file): Oops, don't close if LOGSTREAM is NULL.
237
238 2004-04-30  Werner Koch  <wk@gnupg.org>
239
240         * logging.c (log_set_file): Make sure the log stream will be
241         closed even if the stderr fileno will be assigned to a new socket.
242
243 2004-04-16  Werner Koch  <wk@gnupg.org>
244
245         * logging.h (JNLIB_LOG_WITH_PREFIX): Add constants for the flag
246         values.
247         * logging.c (log_set_prefix): New flag DETACHED.
248         (fun_writer): Take care of this flag.
249         (log_test_fd): New.
250
251 2004-02-18  Werner Koch  <wk@gnupg.org>
252
253         * stringhelp.c (print_sanitized_buffer): Don't care about
254         non-ASCII characaters.
255         (sanitize_buffer): Ditto.
256
257 2004-02-12  Werner Koch  <wk@gnupg.org>
258
259         * Makefile.am: Replaced INCLUDES by AM_CPPFLAGS.
260
261 2004-01-05  Werner Koch  <wk@gnupg.org>
262
263         * argparse.c (strusage): Changed default copyright year to 2004.
264
265 2003-12-17  Werner Koch  <wk@gnupg.org>
266
267         * argparse.c (initialize): Replaced use of non-literal format
268         args.  Suggested by Florian Weimer.
269
270 2003-12-16  Werner Koch  <wk@gnupg.org>
271
272         * logging.c (writen, fun_writer, fun_closer): New.
273         (log_set_file): Add feature to log to a socket.
274         (log_set_file, do_logv): Force printing with prefix and pid.
275
276 2003-11-13  Werner Koch  <wk@gnupg.org>
277
278         * strlist.c (strlist_copy): New.
279
280         * dotlock.c: Define DIRSEP_C et al. if not defined.
281
282 2003-11-06  Werner Koch  <wk@gnupg.org>
283
284         * strlist.h (strlist_t): New. STRLIST is now deprecated.
285
286 2003-06-18  Werner Koch  <wk@gnupg.org>
287
288         * strlist.c (strlist_pop): New.
289
290         * dotlock.c (dotlock_remove_lockfiles): Prefixed with dotlock_ and
291         made global.
292
293 2003-06-17  Werner Koch  <wk@gnupg.org>
294
295         * stringhelp.c (length_sans_trailing_chars)
296         (length_sans_trailing_ws): New.
297
298         * logging.c (log_inc_errorcount): New.
299
300         * stringhelp.c (print_sanitized_utf8_buffer): Implement utf8
301         conversion.
302         (sanitize_buffer): New. Based on gnupg 1.3.2 make_printable_string.
303
304         * dotlock.c: Updated to match the version from 1.3.2
305         * utf8conv.c: New.  Code taken from strgutil.c of gnupg 1.3.2.
306         * utf8conv.h: New.
307
308 2003-06-16  Werner Koch  <wk@gnupg.org>
309
310         * logging.c (do_logv): Hack to optionally suppress a leading space.
311
312         * stringhelp.c (ascii_strncasecmp): New.  Taken from gnupg 1.3.
313         (ascii_memistr): New. Taken from gnupg 1.3
314
315 2003-06-13  Werner Koch  <wk@gnupg.org>
316
317         * mischelp.h (wipememory2,wipememory): New. Taken from GnuPG 1.3.2. 
318
319 2002-06-04  Werner Koch  <wk@gnupg.org>
320
321         * stringhelp.c (print_sanitized_utf8_string): New.  No real
322         implementation for now.
323         (print_sanitized_utf8_buffer): Ditto.
324
325 2002-04-04  Werner Koch  <wk@gnupg.org>
326
327         * logging.c (log_get_prefix): New.
328
329 2002-03-15  Werner Koch  <wk@gnupg.org>
330
331         * argparse.c (optfile_parse): Fixed missing argument handling.
332
333 2002-02-25  Werner Koch  <wk@gnupg.org>
334
335         * stringhelp.c (ascii_memcasemem): New.
336
337 2002-02-14  Werner Koch  <wk@gnupg.org>
338
339         * Makefile.am (INCLUDES): Add cflags for libgcrypt.
340
341 2002-02-07  Werner Koch  <wk@gnupg.org>
342
343         * logging.c (log_set_fd): New.
344
345         * stringhelp.c (print_sanitized_buffer): New.
346         (print_sanitized_string): New.
347
348 2002-01-24  Werner Koch  <wk@gnupg.org>
349
350         * argparse.c (strusage): Set default copyright notice year to 2002.
351
352         Fixed the copyright notice of this file, as it has always been
353         part of GnuPG and therefore belongs to the FSF.
354
355 2001-11-01  Marcus Brinkmann  <marcus@g10code.de>
356
357         * logging.c (log_printf): Do not initialize ARG_PTR with 0, we
358         don't know the correct type.  Instead, run va_start and va_end
359         unconditionally.
360         Reported by Jose Carlos Garcia Sogo <jsogo@debian.org>.
361
362 2002-01-19  Werner Koch  <wk@gnupg.org>
363
364         * logging.c (log_get_stream): New.
365
366 2001-12-05  Werner Koch  <wk@gnupg.org>
367
368         * logging.c (log_set_prefix): New.
369         (do_logv): Include prefix and pid only if enabled. Print time only
370         when explicitly enabled.
371         (log_logv): New.  
372         * logging.h: Include log_logv() only when requested.
373
374 2001-11-06  Werner Koch  <wk@gnupg.org>
375
376         * strlist.c, strlist.h: New. Taken from pgnupg/util/strgutil.c
377
378 2001-08-30  Werner Koch  <wk@gnupg.org>
379
380         * logging.c (log_printf): Don't pass NULL instead of arg_ptr.
381
382 2001-07-19  Werner Koch  <wk@gnupg.org>
383
384         * stringhelp.c (ascii_memistr,ascii_isupper,ascii_islower,
385         ascii_toupper,ascii_tolower, ascii_strcasecmp, ascii_memcasecmp): New.
386
387 2000-07-26 10:02:51  Werner Koch  (wk@habibti.openit.de)
388
389         * stringhelp.c.: Add stdarg.h
390         * argparse.h: s/ulong/unsigned long/ although this should be defined
391         by types.h.
392
393 2000-06-28 19:40:23  Werner Koch  (wk@habibti.openit.de)
394
395         * Makefile.am: Replaced second logging.c by .h
396
397 2000-05-24 08:58:15  Werner Koch  (wk@habibti.openit.de)
398
399         * logging.c (log_get_errorcount): New.
400
401 2000-05-24 08:44:47  Werner Koch  (wk@habibti.openit.de)
402
403         * stringhelp.c: Added a few filename related helper functions.
404
405 2000-05-11 18:04:43  Werner Koch  (wk@habibti.openit.de)
406
407         * xmalloc.c (xstrcat2): Replaced stpcpy to quickly address W32
408         problems.
409
410 2000-05-02 19:43:38  Werner Koch  (wk@habibti.openit.de)
411
412         * xmalloc.c (xstrcat2): New.
413
414 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
415
416         * README: New.
417         * Makefile.am: new.
418         * argparse.c, argparse.h, logging.c, logging.h:
419         * mischelp.h, stringhelp.c, stringhelp.h, xmalloc.c:
420         * xmalloc.h, dotlock.c: Moved from ../util to here.
421         * dotlock.h: New.
422         * libjnlib-config.h: New.
423
424         * logging.c (log_set_file): New.
425         (log_printf): New.
426         (do_logv): Add kludge to insert LFs.
427
428
429      ***********************************************************
430      * Please note that JNLIB is maintained as part of GnuPG.  *
431      * You may find it source-copied in other packages.        *
432      ***********************************************************        
433         
434  Copyright 2000, 2001, 2002, 2003, 2004,
435            2005, 2006 Free Software Foundation, Inc.
436
437  This file is free software; as a special exception the author gives
438  unlimited permission to copy and/or distribute it, with or without
439  modifications, as long as this notice is preserved.
440
441  This file is distributed in the hope that it will be useful, but
442  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
443  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.