• Patch: Elm ME+ 2.5 PLalpha54 -> Elm ME+ 2.5 PLalpha60 [0/13] (2/3)

    From Kari Hurtta@21:1/5 to All on Thu Nov 24 19:53:03 2022
    [continued from previous message]

    or IMAP login to <host> as <user> ... (verified: <cn name>)
    or IMAP login to <host> as <user> ...

    - If 'display-check-host' is given use-tls setting,
    openssl includes X509_check_host(), hostname is not
    ip address, and X509_check_host() succeed, with POP show

    POP login to <host> (verified, host matches) as <user> ...
    or POP login to <host> as <user> ... (verified, host matches <name>) ...

    instead of

    POP login to <host> (verified) as <user> ...
    or POP login to <host> as <user> ... (verified: <cn name>)
    or POP login to <host> as <user> ...

    - Fixed POP error messages for reading non-existing
    UIDLS file. This error was probably introduced on
    Elm ME+ 2.5 PLalpha55
    - Added mbx_remote_login_msg() to lib/mbox/def_mbox.h
    and lib/mbox/remote_mbx.c

    - Fixed crash when folder browser login prompt from #hashmark
    is interrupted with Ctrl-C and new hashmark is then
    opened:
    CONNECTION PANIC in .../lib/mbox/hashmark_remote.c:3080:hashtype_initd_remote
    >>>hassmark_data is set
    Call stack: 7F6D8A104A14 7F6D8AB4CEFB 7F6D8AB4015D 7F6D8AB54A7B 7F6D8AB554F5
    continues: 7F6D8AAE7C9B 7F6D8AAE7FB0 44A036 44D3A3 46DFDC
    continues: 44E0A9 44E604 4D5CAA 498A40 499B65
    continues: 46B06F 7F6D89881840 420149
    backtrace:
    .../libelmme-base.so(panic+0x1de)[0x7f6d8a104a14]
    .../libelmme-mbox.so(+0xb9efb)[0x7f6d8ab4cefb]
    .../libelmme-mbox.so(hashmark_init_data+0x123)[0x7f6d8ab4015d]
    .../libelmme-mbox.so(+0xc1a7b)[0x7f6d8ab54a7b]
    .../libelmme-mbox.so(+0xc24f5)[0x7f6d8ab554f5]
    .../libelmme-mbox.so(select_dir_item_helper+0x108)[0x7f6d8aae7c9b]
    .../libelmme-mbox.so(select_dir_item+0x264)[0x7f6d8aae7fb0]
    .../elm(browser_expand+0x3c9)[0x44a036]
    .../elm[0x44d3a3]
    .../elm(enter_helper+0x169c)[0x46dfdc]
    .../elm[0x44e0a9]
    .../bin/elm(folder_browser+0x160)[0x44e604]
    .../bin/elm(change_file+0x19b)[0x4d5caa]
    .../bin/elm[0x498a40]
    .../bin/elm(main_messages_menu+0x17d)[0x499b65]
    .../bin/elm(main+0xf48)[0x46b06f]
    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f6d89881840]
    .../elm(_start+0x29)[0x420149]
    Press a <enter> to abort or <enter> to exit:
    > Added hashmark_free_data() to browser_change_hashmark()

    - Changed address prompt implementation. Some errors may be
    reported when TAB or ENTER is pressed. On some situations
    address need to be confirmed by pressing ENTER second
    time. However all syntax errors are not reported and do not
    require confirm with pressing ENTER second time.
    - Added prompt_expanded_address() to hdrs/me.h and src/addr_prompt.c
    - Added zero_enter_info() to hdrs/me.h and src/enter_helper.c
    - Added struct address_edit *address to struct enter_info
    - Added alter_buffer_r * alter_buffer to struct enter_info
    - Added default_alter_buffer() to hdrs/me.h and src/enter_helper.c
    - Changed prototype of enter_helper()
    - Added enum token_status status to struct string_token
    - Added update_textual_from_tokenized() to hdrs/me.h and
    and src/addr_util.c
    - Changed prototype of buffer_to_header(), hdr_to_buffer()
    - Make hdr_to_buffer() and buffer_to_header()
    static for src/hdrconfig.c and removed from hdrs/me.h

    - Changed gb_optionally_enter() on src/in_utils.c

    - Possible fix to message_W() on src/out_utils.c
    - Possible fix to expanded_to_edit_buffer() on src/addr_util.c

    - Replaced sprintf() with elm_message() on do_pipe()
    at syscall.c

    New elmrc option:
    use-tls

    New file:
    src/addr_prompt.c

    Changes on Elm ME+ 2.5 PLalpha57 compared with Elm ME+ 2.5 PLalpha56 --------------------------------------------------------------------

    SUMMARY: This release removes "USENET supported version"
    string and fixes bogus "Failed to stat mail-file"
    error message. Also some other small changes
    or bugs fixes are included.

    - Removed "USENET supported version" from WHAT_STRING
    from hdrs/patchlevel.h. Usenet news (nntp) server
    news.kolumbus.fi is closed since 2021-05-04, and
    Usenet news servers seems rare.

    - Checked possible ctime() failure on mbx_copy_envelope_pop()
    - Checked possible ctime() failure on real_from() debug
    - Checked possible ctime() failure on real_start_we_local()

    - Changed %D (expand date) expansion on fileio.c
    - Some changes on mbx_mark_keep_normal()

    - Checked possible asctime() failure on debug_message()

    - Added some FOLDER_INFO_magic checks to lib/mbox/localmbx.c

    - Changed to filter_scanlist() on lib/misc/mime_types.c

    - Fixed bogus "Failed to stat mail-file" error message.

    Changes on Elm ME+ 2.5 PLalpha56 compared with Elm ME+ 2.5 PLalpha55 --------------------------------------------------------------------

    SUMMARY: This release fixes crash when alias with empty
    address is saved. This releases changes aliases
    handling. Unordered ~/.elm/elmaliases is rewritten
    on startup if elmrc option "user-conf-rewrite"
    is set (default). New option "conf-merge-locking"
    controls locking of ~/.elm/elmaliases.
    Also elm command includes -b<backup-suffix> option.
    This release fixes some memory leaks reported
    by valgrind. Also some other changes are included
    and bugs fixed.

    - Changed aliases to use struct sortlist
    and sortlist routines on lib/alias/aliases.c
    * Note: This implementation write aliases to file
    on order. If that is read on older
    versions of ELM ME+, resulting
    binary tree degenerates to linear list.
    - Changed prototype of aliases_map_lookup_alias()
    - Changed prototype of load_aliases_map()

    - If elmrc option "user-conf-rewrite" is set (default),
    ~/.elm/elmaliases is rewritten on elm startup
    if aliases are not on order. In that case
    backup is saved as ~/.elm/elmaliases.YYYY-MM-DD.bck
    if not exists (where YYYY, MM, and DD are numeric
    year, month and day).
    > However "elm -w" does not write backup when
    writing configuration files.
    - Elmrc option "user-conf-rewrite" is ignored
    and ~/.elm/elmaliases is not written, if
    configure file parsing fails.

    - Added support that aliases (~/.elm/elmaliases)
    are modified on several Elms on same time
    and changes are merged when ~/.elm/elmaliases
    is saved.
    - Aliases file ~/.elm/elmaliases is exclusively
    (read-write) locked and read for new changes
    before new file ~/.elm/elmaliases.N written
    and then renamed to ~/.elm/elmaliases. When lock is
    acquired, writer check that is original file changed
    (replaced with new file), if it is then file reopened and
    locked again before is its read for merge.
    - Locking is controlled with new elmrc option
    "conf-merge-locking". This lock option
    knows following keywords
    none None of values are selected
    (use value none to disable locking)
    flock Use flock() locking. flock()
    does not lock files over NFS.
    fcntl Use fcntl() locking.
    - Added edited_address_alias() to lib/addr/def_alias.h
    and lib/addr/address_alias.c
    - Added merge_aliases_map() to hdrs/aliaslib.h
    and lib/addr/aliases.c

    - If some aliases are deleted from ~/.elm/elmaliases
    when changes from it is merged to new ~/.elm/elmaliases(.N),
    deleted aliases are show with letter 'X' (as eXpunged)
    on Alias mode -screen.
    - Added aliases_map_deleted_alias() to hdrs/aliaslib.h
    and lib/alias/aliases.c
    - Changed show_alias_status(), rebuild_aliasview(),
    update_aview()
    - Added am_deleted_alias() to src/aliases/def_aliases.h
    and src/aliases/aliases_map.c

    - Fixed '$' command on a)lias -screen that
    it does not print "Updating aliases"
    if aliases are not deleted or added
    (actually .elm/elmaliases is not
    written on that situation)
    [ That spurious updating message was probably
    introduced on Elm ME+ 2.5 PLalpha19 ]
    - Changed that '$' command on a)lias -screen
    read and merges aliases when .elm/elmaliases
    is changed (also when there is no
    aliases to be deleted or added for
    writing .elm/elmaliases file).
    - Added test_file_changes() to hdrs/aliaslib.h and
    lib/alias/aliases.c
    - Changed prototype of dump_aliases_map()
    - Added file_changed_aliasview() to hdrs/me.h and
    src/aliases/aliases.c

    - Changed prototype of dump_conf_map_f()

    - Added -b<backup-suffix> option to elm. Elm checks first that
    there is no files in form <config file><backup-suffix> exists
    when -b<backup-suffix> option is used.
    - Command -wb<backup-suffix> causes that config
    file <config file> is preserved as
    <config file><backup-suffix> when file <config file> rewritten.
    - Option -b<backup-suffix> without -w changes backup
    file used with elmrc option "user-conf-rewrite".
    - Added check_conf_backup_suffix() and
    check_file_backup_suffix() to hdrs/misclib.h
    and lib/misc/conf_writer.c
    - Changed prototype of save_options()
    - Added check_options_backup_suffix() to hdrs/me.h
    and src/save_opts.c
    * Without -b option ~/.elm/elmrc is saved to
    .elm/elmrc.old when -w option is given.
    * Note: Backup .elm/elmrc.old is still used
    when ~/.elm/elmrc is saved with '>' command
    on o)ptions screen.

    - Added new_string_sort(), free_string_sort()
    and string_sort_cmp(), give_string_from_string_sort()
    inc_string_sort_refcount() to hdrs/elmlib.h and
    lib/string_sort.c
    - Added int refcount; to struct string
    - Added inc_string_refcount() to hdrs/cs_imp.h
    and lib/string.c
    - Added cs_unicode_vector_from_string() to
    hdrs/cs_imp.h
    - Added cs_unicode_vector_from_default() and
    cs_unicode_vector_from_null() to hdrs/cs_imp.h
    and lib/string.c

    - Changed prototype of safeopen(), safeopen_rdwr(),
    register_conf_write(),
    write_conf(), search_sort_list_item()
    - Changed safeopen(), safeopen_rdwr() to use
    common safeopen_core()

    - Moved some locking routines from lib/mbox/localmbx.c
    to lib/misc/filelock.c
    - Added filelock_fd to lib/misc/filelock.c and
    hdrs/misclib.h
    - Changed GrabRead_the_file(),
    Grab_the_file() and Release_the_file()
    to use filelock_fd()
    - Changed prototype of Release_the_file()
    - Changed mbx_syscall_unlock_file to use filelock_fd()

    - Fixed valgrind reported memory leak:
    124 bytes in 1 blocks are definitely lost in loss record 380 of 511
    at 0x4C2FD5F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CDFFF4: safe_realloc (safemalloc.c:115)
    by 0x5D3EAAA: strmcat (strmcpy.c:44)
    by 0x55C9A46: message_id_func (message-id.c:2261)
    by 0x5CAF626: dt_FUNC_print_value (rc_handle.c:1091)
    by 0x5CAC88A: dt_DELAY_print_value (rc_delay.c:458)
    by 0x5D4D8ED: write_option (write_rc.c:291)
    by 0x5D4DD3D: write_rc_part (write_rc.c:407)
    by 0x5D4F8AA: write_rc (write_rc.c:919)
    by 0x4F1184: save_options (save_opts.c:163)
    by 0x489F56: initialize (init.c:715)
    by 0x4699EA: main (elm.c:1402)

    - Fixed valgrind reported memory leak:
    41 bytes in 2 blocks are definitely lost in loss record 323 of 510
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CDFC94: safe_malloc (safemalloc.c:60)
    by 0x5C7C05E: cs_stream_from_utf8 (cs_utf.c:747)
    by 0x5D3556D: bytestream_from_string (string.c:1482)
    by 0x5CAD829: sconvert_to_rcset (rc_handle.c:132)
    by 0x5CB7FF0: dt_STRING_print_value (rc_handle.c:4304)
    by 0x5D4D8ED: write_option (write_rc.c:291)
    by 0x5D4DD3D: write_rc_part (write_rc.c:407)
    by 0x5D4F8AA: write_rc (write_rc.c:919)
    by 0x4F1184: save_options (save_opts.c:163)
    by 0x489F56: initialize (init.c:715)
    by 0x4699EA: main (elm.c:1402)

    - Fixed crash which occurs when alias with empty address is saved:
    SIGNAL PANIC in .../mail/elm-alias/src/signals.c:144:segv_signal
    >>>

    Segment Violation signal!


    Call stack: 7F81788496AC 4FE6E1 7F8177FDB4C0 7F8178D7BEF1 7F8178B56F85
    continues: 52F2AE 52A4B1 4299E6 4290E4 466B3D
    continues: 497CE4 499584 46ABA0 7F8177FC6840 41FD89
    backtrace:
    ../lib64/libelmme-base.so.1.1.55+(panic+0x1de)[0x7f81788496ac]
    ../bin/elm(segv_signal+0x80)[0x4fe6e1]
    /lib/x86_64-linux-gnu/libc.so.6(+0x354c0)[0x7f8177fdb4c0]
    ../lib64/libelmme-addr.so.1.1.55+(address_to_str+0x8f)[0x7f8178d7bef1]
    ../lib64/libelmme-alias.so.1.1.55+(dump_aliases_map+0x78d)[0x7f8178b56f85]

    - Added address_is_empty() to hdrs/addrlib and lib/addr/address.c
    - Changed parse_one_tokenized_address() on lib/addr/parsestring.c
    - Changed parse_one_address() on lib/addr/getaddr.c
    - Changed ad_set_alias_person_address() on arc/alias-display.c
    - Changed alias_info_update() on src/alias_info.c
    - Changed sb_update_alias_info_part on arc/alias-display.c
    - Changed do_expand_alias_tail() on lib/alias/aliasexpand.c

    - Changed some hdrs/elm_defs.h defines to enum

    - Changed thread view to use struct sortlist
    and sortlist routines on lib/alias/aliases.c
    - Added fix for handling of invalid date
    to update_mailbox_threads() on src/messages/thread.c
    - Used struct string_sort on struct thread_info

    - Changed time_sent_compare()
    - Changed compare_threads_1()

    - Added compare_threads_1_sentd(),
    compare_threads_1_revsentd() to hdrs/me.h
    and src/thread.c

    - Fixed valgrind reported memory leak:
    57,204 (45,880 direct, 11,324 indirect) bytes in 1 blocks are definitely lost in loss record 1,608 of 1,614
    at 0x4C2FD5F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CE87EE: safe_array_realloc (safemalloc.c:263)
    by 0x50CD9A: sort_threads (thread.c:305)
    by 0x51085C: ViewThreads (thread.c:1522)
    by 0x46F649: h_view_threads (extended.c:285)
    by 0x4706AF: extended_command (extended.c:782)
    by 0x467459: mailbox_command (elm.c:301)
    by 0x4981FB: main_messages_loop (mailbox.c:315)
    by 0x499A9B: main_messages_menu (mailbox.c:964)
    by 0x46B09E: main (elm.c:1677)

    - Cast dev_t and ino_t to long on printing.

    New elmrc options:
    user-conf-rewrite
    conf-merge-locking

    New files:
    lib/misc/filelock.c
    hdrs/filelock.h
    lib/string_sort.c

    Changes on Elm ME+ 2.5 PLalpha55 compared with Elm ME+ 2.5 PLalpha54 --------------------------------------------------------------------

    SUMMARY: This release fixes some memory errors reported
    by valgrind. Delivery status notifications (DSNs)
    are stored to =dsn folder instead of =received
    folder when mailbox is leaved with new elmrc
    option "dsnmail" on this release. This release
    changes how UIDL listing of POP mailboxes are
    handled. This release adds new "dsn" criteria
    to l)imit command. This release changes default
    target for DSN mail on s)save command to folder
    given on elmrc option "dsnmail".

    - Added elmrc option "dsnmail", which default value is "=dsn".
    If this is set (not none), read delivery status notifications
    are stored that folder and not to folder specified on
    "receivedmail". Also default folder for delivery status
    notifications is folder given on elmrc option "dsnmail", when
    using s)ave command.
    * Setting
    dsnmail = none
    disabled special processing of delivery status notifications
    when mailbox is left.
    * s)ave command does not use elmrc option "dsnmail", if
    that folder is already open. If "folder-locking" is
    enabled, saving to open folder does not work.
    - Reserved [...] for folder name tags on folder expansion.
    - Tag [dsn] indicates folder given on elmrc option "dsnmail".
    - Added mime_type_is_dsn() to melib/mime.c and hdrs/melib.h
    * Only Content-Type
    multipart/report; report-type=delivery-status
    is considered to be delivery status notification.
    - Added letter 'd' as second status letter on mailbox menu
    for delivery status notification.

    - Changed how messages are saved on sync_mbox()
    - Added question
    Move read notifications to "dsn" folder? (y/n)
    or
    Move read notifications to "dsn" or r)eceived folder? (y/n/r)
    - Question
    Keep unread message in incoming mailbox? (y/n)
    apply only to same type messages (normal or dsn)
    than which unread messages are moved to received
    or dsn folder.
    * If
    Move read messages to "received" folder? (y/n)
    or
    Move read notifications to "dsn" folder? (y/n)
    is answered 'n' (no), then also unread messages
    are also kept, even when question
    Keep unread message in incoming mailbox? (y/n)
    is answered 'n' (no).

    - Changed question
    Keep unread message in incoming mailbox? (y/n)
    to
    Keep unread notifications in incoming mailbox? (y/n) y
    when all unread messages are delivery status
    notifications.

    - Changed initialization of "receivedmail" and "sentmail"
    elmrc options.

    - Changed how default target is handled on save()

    - Added "dsn" to l)imit criteria.

    - Added lib/sortlist.c
    - Added alloc_sort_list(), free_sort_list(),
    prealloc_sort_list(), sort_list_len(),
    get_sort_list_item(), get_sort_list_debug_name(),
    and search_sort_list_item()
    to hdrs/elmlib.h and lib/sortlist.c
    * search_sort_list_item() is generalization of
    give_resolv_cache() from shared_libs/resolv/resolv.c

    - Changed cache_items to use struct sortlist
    and sortlist routines on
    shared_libs/resolv/resolv.c

    - Changed POP uidl cache to use struct sortlist
    and sortlist routines on shared_libs/resolv/resolv.c
    * Note: This implementation write uidls to file
    on order. If that is read on older
    versions of ELM ME+, resulting
    binary tree degenerates to linear list.

    - This release removes old unused UIDLs,
    which are no longer on mailbox, from POP uidl cache.
    - Exported GrabRead_the_file() from lib/mbox/localmbx.c
    and added to hdrs/mboxlib.h

    - Clear new part of allocated area
    on resize_resolv_message()

    - Possibly fixed valgrind reported error:
    Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
    at 0x6505590: __sendmsg_nocancel (syscall-template.S:84)
    by 0x7A2A746: write_message (query.c:437)
    by 0x7A31F95: resolv_write_message (query.c:2547)
    by 0x5CEA1D6: real_wait_select (schedule.c:2017)
    by 0x5CED01D: real_wait (schedule.c:2500)
    by 0x5CEEBF5: wait_for_something (schedule.c:2829)
    by 0x5CF0C71: wait_for_action_or_timeout_settime_c (schedule.c:3241)
    by 0x7A38CC5: resolv_wait_answer (query.c:4143)
    by 0x7A3AE7F: end_query_helper (query.c:4810)
    by 0x7A3B969: lookup_resolv_cache_nonblocked (query.c:5020)
    by 0x7A21396: call_lookup_resolv_cache (resolv.c:3853)
    by 0x7A1F5CE: fill_query_resolv_cache (resolv.c:3081)
    Address 0x8aacfc4 is 84 bytes inside a block of size 152 alloc'd
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
    by 0x7A2C211: new_resolv_message_state (query.c:1051)
    by 0x7A33014: give_resolv_process (query.c:2788)
    by 0x7A33C0D: have_non_blocking_qm (query.c:2958)
    by 0x7A23F92: lookup_service_addresses2 (resolv.c:4654)
    by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
    by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
    by 0x5CFE110: service_entry_hook (service_list.c:2681)
    by 0x5D000B3: gse_scan_hostname (service_list.c:3277)
    by 0x5D02B37: give_service_entry5 (service_list.c:4129)
    by 0x535B87B: htrem_give_service_entry (hashmark_remote.c:3521)
    Uninitialised value was created by a stack allocation
    at 0x7A3114B: resolv_write_message (query.c:2359)
    - Possibly fixed valgrind reported error:
    Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
    at 0x6505590: __sendmsg_nocancel (syscall-template.S:84)
    by 0x7A2A746: write_message (query.c:439)
    by 0x7A32044: resolv_write_message (query.c:2564)
    by 0x5CEA1D6: real_wait_select (schedule.c:2017)
    by 0x5CED01D: real_wait (schedule.c:2500)
    by 0x5CEEBF5: wait_for_something (schedule.c:2829)
    by 0x5CF1D5A: wait_for_action_or_deadline_settime_c (schedule.c:3479)
    by 0x7A38E37: resolv_wait_answer (query.c:4171)
    by 0x7A3AF2E: end_query_helper (query.c:4827)
    by 0x7A3BA18: lookup_resolv_cache_nonblocked (query.c:5037)
    by 0x7A21396: call_lookup_resolv_cache (resolv.c:3853)
    by 0x7A1F5CE: fill_query_resolv_cache (resolv.c:3081)
    Address 0x8a896b4 is 84 bytes inside a block of size 152 alloc'd
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
    by 0x7A2C211: new_resolv_message_state (query.c:1053)
    by 0x7A330C3: give_resolv_process (query.c:2805)
    by 0x7A33CBC: have_non_blocking_qm (query.c:2975)
    by 0x7A23F92: lookup_service_addresses2 (resolv.c:4654)
    by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
    by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
    by 0x5CFE110: service_entry_hook (service_list.c:2681)
    by 0x5D000B3: gse_scan_hostname (service_list.c:3277)
    by 0x5D02B37: give_service_entry5 (service_list.c:4129)
    by 0x535B87B: htrem_give_service_entry (hashmark_remote.c:3521)
    Uninitialised value was created by a heap allocation
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD2445: safe_malloc (safemalloc.c:60)
    by 0x7A2984B: new_resolv_query_hdr (query.c:63)
    by 0x7A37181: query_one_name (query.c:3769)
    by 0x7A3B9D9: lookup_resolv_cache_nonblocked (query.c:5031)
    by 0x7A21396: call_lookup_resolv_cache (resolv.c:3853)
    by 0x7A1F5CE: fill_query_resolv_cache (resolv.c:3081)
    by 0x7A1FE26: query_resolv_cache (resolv.c:3311)
    by 0x7A260AF: lookup_service_addresses2 (resolv.c:5037)
    by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
    by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
    by 0x5CFE110: service_entry_hook (service_list.c:2681)

    - Used bzero() for union xxx_rand initialization of
    real_wait_select() and real_wait_poll(). This tries
    avoid valgrind's uninitialized memory warnings
    (although uninitialized bytes does not really harm
    because that data is feed to random generator).

    - Added int nested_FreeStreamStack0; to struct streamsched
    - Fixed valgrind reported error:
    Invalid read of size 8
    at 0x5D1C5CC: ss_FreeSocket (streamsched.c:235)
    by 0x5D1DD96: free_stack (streamsched.c:757)
    by 0x5D21D4D: FreeStreamStack0 (streamsched.c:1931)
    by 0x5D21EA6: FreeStreamStack2 (streamsched.c:1966)
    by 0x5316A2C: mbx_close_pop (pop.c:1851)
    by 0x52BB7AC: close_folder (mbox.c:1038)
    by 0x48E471: close_cleanup_mbox (leavembox.c:745)
    by 0x4D475A: quit (quit.c:150)
    by 0x498AB5: main_messages_loop (mailbox.c:819)
    by 0x498EB2: main_messages_menu (mailbox.c:964)
    by 0x46A5BC: main (elm.c:1677)
    Address 0x8ab2270 is 80 bytes inside a block of size 104 free'd
    at 0x4C2EDEB: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD34C5: safe_free (safemalloc.c:354)
    by 0x5D21E51: FreeStreamStack0 (streamsched.c:1950)
    by 0x5D1DAF2: free_ss_data (streamsched.c:704)
    by 0x5CE1509: remove_action0 (schedule.c:175)
    by 0x5CE4942: clear_action_idx (schedule.c:812)
    by 0x5CE4AEE: clear_action0 (schedule.c:837)
    by 0x5D1C5C7: ss_FreeSocket (streamsched.c:231)
    by 0x5D1DD96: free_stack (streamsched.c:757)
    by 0x5D21D4D: FreeStreamStack0 (streamsched.c:1931)
    by 0x5D21EA6: FreeStreamStack2 (streamsched.c:1966)
    by 0x5316A2C: mbx_close_pop (pop.c:1851)
    by 0x52BB7AC: close_folder (mbox.c:1038)
    by 0x48E471: close_cleanup_mbox (leavembox.c:745)
    by 0x4D475A: quit (quit.c:150)
    by 0x498AB5: main_messages_loop (mailbox.c:819)
    by 0x498EB2: main_messages_menu (mailbox.c:964)
    by 0x46A5BC: main (elm.c:1677)
    Block was alloc'd at
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
    by 0x5D21660: returnSimpleStream (streamsched.c:1771)
    by 0x5CCCC17: connect_remote_account (remote_mbx.c:4189)
    by 0x535CC35: htrem_have_connection (hashmark_remote.c:3897)
    by 0x535E5F9: hashtype_selectbr_item_remote (hashmark_remote.c:4415)
    by 0x534E16F: hashmark_selectbr_item (hashmark.c:2789)
    by 0x53619FE: browser_select_hashmark (hashmark_browser.c:402)
    by 0x52F6C1A: select_dir_item_helper (savefolder.c:5029)
    by 0x52F6F2F: select_dir_item (savefolder.c:5088)
    by 0x44958D: browser_expand (browser.c:707)
    by 0x44C8FA: gb_browser (browser.c:1966)
    by 0x46D509: enter_helper (enter_helper.c:426)
    by 0x44D600: run_browser (browser.c:2326)
    by 0x450010: gen_browser (browser.c:3334)
    by 0x488220: select_folder (init.c:89)
    by 0x48A9F9: initialize_mailbox (init.c:980)
    by 0x498E4E: main_messages_menu (mailbox.c:951)
    by 0x46A5BC: main (elm.c:1677)

    - Possibly fixed valgrind reported error:
    Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
    at 0x6505590: __sendmsg_nocancel (syscall-template.S:84)
    by 0x7A2A746: write_message (query.c:444)
    by 0x7A32044: resolv_write_message (query.c:2573)
    by 0x5CEA1EF: real_wait_select (schedule.c:2021)
    by 0x5CED04C: real_wait (schedule.c:2509)
    by 0x5CEEC24: wait_for_something (schedule.c:2838)
    by 0x5CF0DEC: wait_for_action_or_timeout (schedule.c:3271)
    by 0x7A34BC4: free_non_blocking_qm (query.c:3235)
    by 0x7A295F6: free_shared_cache (resolv.c:5948)
    by 0x5CD9D80: free_shared_cache1 (shared.c:2010)
    by 0x5CDA184: free_shared_caches (shared.c:2067)
    by 0x50AD0E: leave (utils.c:440)
    by 0x46A78B: main (elm.c:1719)
    Address 0x8a72914 is 84 bytes inside a block of size 152 alloc'd
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
    by 0x7A2C211: new_resolv_message_state (query.c:1058)
    by 0x7A330C3: give_resolv_process (query.c:2814)
    by 0x7A33CBC: have_non_blocking_qm (query.c:2984)
    by 0x7A23F92: lookup_service_addresses2 (resolv.c:4654)
    by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
    by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
    by 0x5CFE13F: service_entry_hook (service_list.c:2681)
    by 0x5D000E2: gse_scan_hostname (service_list.c:3277)
    by 0x5D02B66: give_service_entry5 (service_list.c:4129)
    by 0x535B87B: htrem_give_service_entry (hashmark_remote.c:3521)
    by 0x535C89F: htrem_have_connection (hashmark_remote.c:3829)
    by 0x535E5F9: hashtype_selectbr_item_remote (hashmark_remote.c:4415)
    by 0x534E16F: hashmark_selectbr_item (hashmark.c:2789)
    by 0x53619FE: browser_select_hashmark (hashmark_browser.c:402)
    by 0x52F6C1A: select_dir_item_helper (savefolder.c:5029)
    by 0x52F6F2F: select_dir_item (savefolder.c:5088)
    by 0x44958D: browser_expand (browser.c:707)
    by 0x44C8FA: gb_browser (browser.c:1966)
    Uninitialised value was created by a stack allocation
    at 0x7A17790: ??? (in /tmp/TEST/lib64/libelmme-resolv.so.1.1.54+)

    - Fixed valgrind reported memory leak:
    6 bytes in 2 blocks are definitely lost in loss record 125 of 3,254
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD2445: safe_malloc (safemalloc.c:60)
    by 0x531C832: pop_got_line (pop.c:3636)
    by 0x531CF8E: mbx_copy_header_pop (pop.c:3771)
    by 0x52C5E72: copy_header_folder (mbox.c:3495)

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Kari Hurtta@21:1/5 to All on Thu Nov 24 20:18:28 2022
    [continued from previous message]

    or IMAP login to <host> as <user> ... (verified: <cn name>)
    or IMAP login to <host> as <user> ...

    - If 'display-check-host' is given use-tls setting,
    openssl includes X509_check_host(), hostname is not
    ip address, and X509_check_host() succeed, with POP show

    POP login to <host> (verified, host matches) as <user> ...
    or POP login to <host> as <user> ... (verified, host matches <name>) ...

    instead of

    POP login to <host> (verified) as <user> ...
    or POP login to <host> as <user> ... (verified: <cn name>)
    or POP login to <host> as <user> ...

    - Fixed POP error messages for reading non-existing
    UIDLS file. This error was probably introduced on
    Elm ME+ 2.5 PLalpha55
    - Added mbx_remote_login_msg() to lib/mbox/def_mbox.h
    and lib/mbox/remote_mbx.c

    - Fixed crash when folder browser login prompt from #hashmark
    is interrupted with Ctrl-C and new hashmark is then
    opened:
    CONNECTION PANIC in .../lib/mbox/hashmark_remote.c:3080:hashtype_initd_remote
    >>>hassmark_data is set
    Call stack: 7F6D8A104A14 7F6D8AB4CEFB 7F6D8AB4015D 7F6D8AB54A7B 7F6D8AB554F5
    continues: 7F6D8AAE7C9B 7F6D8AAE7FB0 44A036 44D3A3 46DFDC
    continues: 44E0A9 44E604 4D5CAA 498A40 499B65
    continues: 46B06F 7F6D89881840 420149
    backtrace:
    .../libelmme-base.so(panic+0x1de)[0x7f6d8a104a14]
    .../libelmme-mbox.so(+0xb9efb)[0x7f6d8ab4cefb]
    .../libelmme-mbox.so(hashmark_init_data+0x123)[0x7f6d8ab4015d]
    .../libelmme-mbox.so(+0xc1a7b)[0x7f6d8ab54a7b]
    .../libelmme-mbox.so(+0xc24f5)[0x7f6d8ab554f5]
    .../libelmme-mbox.so(select_dir_item_helper+0x108)[0x7f6d8aae7c9b]
    .../libelmme-mbox.so(select_dir_item+0x264)[0x7f6d8aae7fb0]
    .../elm(browser_expand+0x3c9)[0x44a036]
    .../elm[0x44d3a3]
    .../elm(enter_helper+0x169c)[0x46dfdc]
    .../elm[0x44e0a9]
    .../bin/elm(folder_browser+0x160)[0x44e604]
    .../bin/elm(change_file+0x19b)[0x4d5caa]
    .../bin/elm[0x498a40]
    .../bin/elm(main_messages_menu+0x17d)[0x499b65]
    .../bin/elm(main+0xf48)[0x46b06f]
    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f6d89881840]
    .../elm(_start+0x29)[0x420149]
    Press a <enter> to abort or <enter> to exit:
    > Added hashmark_free_data() to browser_change_hashmark()

    - Changed address prompt implementation. Some errors may be
    reported when TAB or ENTER is pressed. On some situations
    address need to be confirmed by pressing ENTER second
    time. However all syntax errors are not reported and do not
    require confirm with pressing ENTER second time.
    - Added prompt_expanded_address() to hdrs/me.h and src/addr_prompt.c
    - Added zero_enter_info() to hdrs/me.h and src/enter_helper.c
    - Added struct address_edit *address to struct enter_info
    - Added alter_buffer_r * alter_buffer to struct enter_info
    - Added default_alter_buffer() to hdrs/me.h and src/enter_helper.c
    - Changed prototype of enter_helper()
    - Added enum token_status status to struct string_token
    - Added update_textual_from_tokenized() to hdrs/me.h and
    and src/addr_util.c
    - Changed prototype of buffer_to_header(), hdr_to_buffer()
    - Make hdr_to_buffer() and buffer_to_header()
    static for src/hdrconfig.c and removed from hdrs/me.h

    - Changed gb_optionally_enter() on src/in_utils.c

    - Possible fix to message_W() on src/out_utils.c
    - Possible fix to expanded_to_edit_buffer() on src/addr_util.c

    - Replaced sprintf() with elm_message() on do_pipe()
    at syscall.c

    New elmrc option:
    use-tls

    New file:
    src/addr_prompt.c

    Changes on Elm ME+ 2.5 PLalpha57 compared with Elm ME+ 2.5 PLalpha56 --------------------------------------------------------------------

    SUMMARY: This release removes "USENET supported version"
    string and fixes bogus "Failed to stat mail-file"
    error message. Also some other small changes
    or bugs fixes are included.

    - Removed "USENET supported version" from WHAT_STRING
    from hdrs/patchlevel.h. Usenet news (nntp) server
    news.kolumbus.fi is closed since 2021-05-04, and
    Usenet news servers seems rare.

    - Checked possible ctime() failure on mbx_copy_envelope_pop()
    - Checked possible ctime() failure on real_from() debug
    - Checked possible ctime() failure on real_start_we_local()

    - Changed %D (expand date) expansion on fileio.c
    - Some changes on mbx_mark_keep_normal()

    - Checked possible asctime() failure on debug_message()

    - Added some FOLDER_INFO_magic checks to lib/mbox/localmbx.c

    - Changed to filter_scanlist() on lib/misc/mime_types.c

    - Fixed bogus "Failed to stat mail-file" error message.

    Changes on Elm ME+ 2.5 PLalpha56 compared with Elm ME+ 2.5 PLalpha55 --------------------------------------------------------------------

    SUMMARY: This release fixes crash when alias with empty
    address is saved. This releases changes aliases
    handling. Unordered ~/.elm/elmaliases is rewritten
    on startup if elmrc option "user-conf-rewrite"
    is set (default). New option "conf-merge-locking"
    controls locking of ~/.elm/elmaliases.
    Also elm command includes -b<backup-suffix> option.
    This release fixes some memory leaks reported
    by valgrind. Also some other changes are included
    and bugs fixed.

    - Changed aliases to use struct sortlist
    and sortlist routines on lib/alias/aliases.c
    * Note: This implementation write aliases to file
    on order. If that is read on older
    versions of ELM ME+, resulting
    binary tree degenerates to linear list.
    - Changed prototype of aliases_map_lookup_alias()
    - Changed prototype of load_aliases_map()

    - If elmrc option "user-conf-rewrite" is set (default),
    ~/.elm/elmaliases is rewritten on elm startup
    if aliases are not on order. In that case
    backup is saved as ~/.elm/elmaliases.YYYY-MM-DD.bck
    if not exists (where YYYY, MM, and DD are numeric
    year, month and day).
    > However "elm -w" does not write backup when
    writing configuration files.
    - Elmrc option "user-conf-rewrite" is ignored
    and ~/.elm/elmaliases is not written, if
    configure file parsing fails.

    - Added support that aliases (~/.elm/elmaliases)
    are modified on several Elms on same time
    and changes are merged when ~/.elm/elmaliases
    is saved.
    - Aliases file ~/.elm/elmaliases is exclusively
    (read-write) locked and read for new changes
    before new file ~/.elm/elmaliases.N written
    and then renamed to ~/.elm/elmaliases. When lock is
    acquired, writer check that is original file changed
    (replaced with new file), if it is then file reopened and
    locked again before is its read for merge.
    - Locking is controlled with new elmrc option
    "conf-merge-locking". This lock option
    knows following keywords
    none None of values are selected
    (use value none to disable locking)
    flock Use flock() locking. flock()
    does not lock files over NFS.
    fcntl Use fcntl() locking.
    - Added edited_address_alias() to lib/addr/def_alias.h
    and lib/addr/address_alias.c
    - Added merge_aliases_map() to hdrs/aliaslib.h
    and lib/addr/aliases.c

    - If some aliases are deleted from ~/.elm/elmaliases
    when changes from it is merged to new ~/.elm/elmaliases(.N),
    deleted aliases are show with letter 'X' (as eXpunged)
    on Alias mode -screen.
    - Added aliases_map_deleted_alias() to hdrs/aliaslib.h
    and lib/alias/aliases.c
    - Changed show_alias_status(), rebuild_aliasview(),
    update_aview()
    - Added am_deleted_alias() to src/aliases/def_aliases.h
    and src/aliases/aliases_map.c

    - Fixed '$' command on a)lias -screen that
    it does not print "Updating aliases"
    if aliases are not deleted or added
    (actually .elm/elmaliases is not
    written on that situation)
    [ That spurious updating message was probably
    introduced on Elm ME+ 2.5 PLalpha19 ]
    - Changed that '$' command on a)lias -screen
    read and merges aliases when .elm/elmaliases
    is changed (also when there is no
    aliases to be deleted or added for
    writing .elm/elmaliases file).
    - Added test_file_changes() to hdrs/aliaslib.h and
    lib/alias/aliases.c
    - Changed prototype of dump_aliases_map()
    - Added file_changed_aliasview() to hdrs/me.h and
    src/aliases/aliases.c

    - Changed prototype of dump_conf_map_f()

    - Added -b<backup-suffix> option to elm. Elm checks first that
    there is no files in form <config file><backup-suffix> exists
    when -b<backup-suffix> option is used.
    - Command -wb<backup-suffix> causes that config
    file <config file> is preserved as
    <config file><backup-suffix> when file <config file> rewritten.
    - Option -b<backup-suffix> without -w changes backup
    file used with elmrc option "user-conf-rewrite".
    - Added check_conf_backup_suffix() and
    check_file_backup_suffix() to hdrs/misclib.h
    and lib/misc/conf_writer.c
    - Changed prototype of save_options()
    - Added check_options_backup_suffix() to hdrs/me.h
    and src/save_opts.c
    * Without -b option ~/.elm/elmrc is saved to
    .elm/elmrc.old when -w option is given.
    * Note: Backup .elm/elmrc.old is still used
    when ~/.elm/elmrc is saved with '>' command
    on o)ptions screen.

    - Added new_string_sort(), free_string_sort()
    and string_sort_cmp(), give_string_from_string_sort()
    inc_string_sort_refcount() to hdrs/elmlib.h and
    lib/string_sort.c
    - Added int refcount; to struct string
    - Added inc_string_refcount() to hdrs/cs_imp.h
    and lib/string.c
    - Added cs_unicode_vector_from_string() to
    hdrs/cs_imp.h
    - Added cs_unicode_vector_from_default() and
    cs_unicode_vector_from_null() to hdrs/cs_imp.h
    and lib/string.c

    - Changed prototype of safeopen(), safeopen_rdwr(),
    register_conf_write(),
    write_conf(), search_sort_list_item()
    - Changed safeopen(), safeopen_rdwr() to use
    common safeopen_core()

    - Moved some locking routines from lib/mbox/localmbx.c
    to lib/misc/filelock.c
    - Added filelock_fd to lib/misc/filelock.c and
    hdrs/misclib.h
    - Changed GrabRead_the_file(),
    Grab_the_file() and Release_the_file()
    to use filelock_fd()
    - Changed prototype of Release_the_file()
    - Changed mbx_syscall_unlock_file to use filelock_fd()

    - Fixed valgrind reported memory leak:
    124 bytes in 1 blocks are definitely lost in loss record 380 of 511
    at 0x4C2FD5F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CDFFF4: safe_realloc (safemalloc.c:115)
    by 0x5D3EAAA: strmcat (strmcpy.c:44)
    by 0x55C9A46: message_id_func (message-id.c:2261)
    by 0x5CAF626: dt_FUNC_print_value (rc_handle.c:1091)
    by 0x5CAC88A: dt_DELAY_print_value (rc_delay.c:458)
    by 0x5D4D8ED: write_option (write_rc.c:291)
    by 0x5D4DD3D: write_rc_part (write_rc.c:407)
    by 0x5D4F8AA: write_rc (write_rc.c:919)
    by 0x4F1184: save_options (save_opts.c:163)
    by 0x489F56: initialize (init.c:715)
    by 0x4699EA: main (elm.c:1402)

    - Fixed valgrind reported memory leak:
    41 bytes in 2 blocks are definitely lost in loss record 323 of 510
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CDFC94: safe_malloc (safemalloc.c:60)
    by 0x5C7C05E: cs_stream_from_utf8 (cs_utf.c:747)
    by 0x5D3556D: bytestream_from_string (string.c:1482)
    by 0x5CAD829: sconvert_to_rcset (rc_handle.c:132)
    by 0x5CB7FF0: dt_STRING_print_value (rc_handle.c:4304)
    by 0x5D4D8ED: write_option (write_rc.c:291)
    by 0x5D4DD3D: write_rc_part (write_rc.c:407)
    by 0x5D4F8AA: write_rc (write_rc.c:919)
    by 0x4F1184: save_options (save_opts.c:163)
    by 0x489F56: initialize (init.c:715)
    by 0x4699EA: main (elm.c:1402)

    - Fixed crash which occurs when alias with empty address is saved:
    SIGNAL PANIC in .../mail/elm-alias/src/signals.c:144:segv_signal
    >>>

    Segment Violation signal!


    Call stack: 7F81788496AC 4FE6E1 7F8177FDB4C0 7F8178D7BEF1 7F8178B56F85
    continues: 52F2AE 52A4B1 4299E6 4290E4 466B3D
    continues: 497CE4 499584 46ABA0 7F8177FC6840 41FD89
    backtrace:
    ../lib64/libelmme-base.so.1.1.55+(panic+0x1de)[0x7f81788496ac]
    ../bin/elm(segv_signal+0x80)[0x4fe6e1]
    /lib/x86_64-linux-gnu/libc.so.6(+0x354c0)[0x7f8177fdb4c0]
    ../lib64/libelmme-addr.so.1.1.55+(address_to_str+0x8f)[0x7f8178d7bef1]
    ../lib64/libelmme-alias.so.1.1.55+(dump_aliases_map+0x78d)[0x7f8178b56f85]

    - Added address_is_empty() to hdrs/addrlib and lib/addr/address.c
    - Changed parse_one_tokenized_address() on lib/addr/parsestring.c
    - Changed parse_one_address() on lib/addr/getaddr.c
    - Changed ad_set_alias_person_address() on arc/alias-display.c
    - Changed alias_info_update() on src/alias_info.c
    - Changed sb_update_alias_info_part on arc/alias-display.c
    - Changed do_expand_alias_tail() on lib/alias/aliasexpand.c

    - Changed some hdrs/elm_defs.h defines to enum

    - Changed thread view to use struct sortlist
    and sortlist routines on lib/alias/aliases.c
    - Added fix for handling of invalid date
    to update_mailbox_threads() on src/messages/thread.c
    - Used struct string_sort on struct thread_info

    - Changed time_sent_compare()
    - Changed compare_threads_1()

    - Added compare_threads_1_sentd(),
    compare_threads_1_revsentd() to hdrs/me.h
    and src/thread.c

    - Fixed valgrind reported memory leak:
    57,204 (45,880 direct, 11,324 indirect) bytes in 1 blocks are definitely lost in loss record 1,608 of 1,614
    at 0x4C2FD5F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CE87EE: safe_array_realloc (safemalloc.c:263)
    by 0x50CD9A: sort_threads (thread.c:305)
    by 0x51085C: ViewThreads (thread.c:1522)
    by 0x46F649: h_view_threads (extended.c:285)
    by 0x4706AF: extended_command (extended.c:782)
    by 0x467459: mailbox_command (elm.c:301)
    by 0x4981FB: main_messages_loop (mailbox.c:315)
    by 0x499A9B: main_messages_menu (mailbox.c:964)
    by 0x46B09E: main (elm.c:1677)

    - Cast dev_t and ino_t to long on printing.

    New elmrc options:
    user-conf-rewrite
    conf-merge-locking

    New files:
    lib/misc/filelock.c
    hdrs/filelock.h
    lib/string_sort.c

    Changes on Elm ME+ 2.5 PLalpha55 compared with Elm ME+ 2.5 PLalpha54 --------------------------------------------------------------------

    SUMMARY: This release fixes some memory errors reported
    by valgrind. Delivery status notifications (DSNs)
    are stored to =dsn folder instead of =received
    folder when mailbox is leaved with new elmrc
    option "dsnmail" on this release. This release
    changes how UIDL listing of POP mailboxes are
    handled. This release adds new "dsn" criteria
    to l)imit command. This release changes default
    target for DSN mail on s)save command to folder
    given on elmrc option "dsnmail".

    - Added elmrc option "dsnmail", which default value is "=dsn".
    If this is set (not none), read delivery status notifications
    are stored that folder and not to folder specified on
    "receivedmail". Also default folder for delivery status
    notifications is folder given on elmrc option "dsnmail", when
    using s)ave command.
    * Setting
    dsnmail = none
    disabled special processing of delivery status notifications
    when mailbox is left.
    * s)ave command does not use elmrc option "dsnmail", if
    that folder is already open. If "folder-locking" is
    enabled, saving to open folder does not work.
    - Reserved [...] for folder name tags on folder expansion.
    - Tag [dsn] indicates folder given on elmrc option "dsnmail".
    - Added mime_type_is_dsn() to melib/mime.c and hdrs/melib.h
    * Only Content-Type
    multipart/report; report-type=delivery-status
    is considered to be delivery status notification.
    - Added letter 'd' as second status letter on mailbox menu
    for delivery status notification.

    - Changed how messages are saved on sync_mbox()
    - Added question
    Move read notifications to "dsn" folder? (y/n)
    or
    Move read notifications to "dsn" or r)eceived folder? (y/n/r)
    - Question
    Keep unread message in incoming mailbox? (y/n)
    apply only to same type messages (normal or dsn)
    than which unread messages are moved to received
    or dsn folder.
    * If
    Move read messages to "received" folder? (y/n)
    or
    Move read notifications to "dsn" folder? (y/n)
    is answered 'n' (no), then also unread messages
    are also kept, even when question
    Keep unread message in incoming mailbox? (y/n)
    is answered 'n' (no).

    - Changed question
    Keep unread message in incoming mailbox? (y/n)
    to
    Keep unread notifications in incoming mailbox? (y/n) y
    when all unread messages are delivery status
    notifications.

    - Changed initialization of "receivedmail" and "sentmail"
    elmrc options.

    - Changed how default target is handled on save()

    - Added "dsn" to l)imit criteria.

    - Added lib/sortlist.c
    - Added alloc_sort_list(), free_sort_list(),
    prealloc_sort_list(), sort_list_len(),
    get_sort_list_item(), get_sort_list_debug_name(),
    and search_sort_list_item()
    to hdrs/elmlib.h and lib/sortlist.c
    * search_sort_list_item() is generalization of
    give_resolv_cache() from shared_libs/resolv/resolv.c

    - Changed cache_items to use struct sortlist
    and sortlist routines on
    shared_libs/resolv/resolv.c

    - Changed POP uidl cache to use struct sortlist
    and sortlist routines on shared_libs/resolv/resolv.c
    * Note: This implementation write uidls to file
    on order. If that is read on older
    versions of ELM ME+, resulting
    binary tree degenerates to linear list.

    - This release removes old unused UIDLs,
    which are no longer on mailbox, from POP uidl cache.
    - Exported GrabRead_the_file() from lib/mbox/localmbx.c
    and added to hdrs/mboxlib.h

    - Clear new part of allocated area
    on resize_resolv_message()

    - Possibly fixed valgrind reported error:
    Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
    at 0x6505590: __sendmsg_nocancel (syscall-template.S:84)
    by 0x7A2A746: write_message (query.c:437)
    by 0x7A31F95: resolv_write_message (query.c:2547)
    by 0x5CEA1D6: real_wait_select (schedule.c:2017)
    by 0x5CED01D: real_wait (schedule.c:2500)
    by 0x5CEEBF5: wait_for_something (schedule.c:2829)
    by 0x5CF0C71: wait_for_action_or_timeout_settime_c (schedule.c:3241)
    by 0x7A38CC5: resolv_wait_answer (query.c:4143)
    by 0x7A3AE7F: end_query_helper (query.c:4810)
    by 0x7A3B969: lookup_resolv_cache_nonblocked (query.c:5020)
    by 0x7A21396: call_lookup_resolv_cache (resolv.c:3853)
    by 0x7A1F5CE: fill_query_resolv_cache (resolv.c:3081)
    Address 0x8aacfc4 is 84 bytes inside a block of size 152 alloc'd
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
    by 0x7A2C211: new_resolv_message_state (query.c:1051)
    by 0x7A33014: give_resolv_process (query.c:2788)
    by 0x7A33C0D: have_non_blocking_qm (query.c:2958)
    by 0x7A23F92: lookup_service_addresses2 (resolv.c:4654)
    by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
    by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
    by 0x5CFE110: service_entry_hook (service_list.c:2681)
    by 0x5D000B3: gse_scan_hostname (service_list.c:3277)
    by 0x5D02B37: give_service_entry5 (service_list.c:4129)
    by 0x535B87B: htrem_give_service_entry (hashmark_remote.c:3521)
    Uninitialised value was created by a stack allocation
    at 0x7A3114B: resolv_write_message (query.c:2359)
    - Possibly fixed valgrind reported error:
    Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
    at 0x6505590: __sendmsg_nocancel (syscall-template.S:84)
    by 0x7A2A746: write_message (query.c:439)
    by 0x7A32044: resolv_write_message (query.c:2564)
    by 0x5CEA1D6: real_wait_select (schedule.c:2017)
    by 0x5CED01D: real_wait (schedule.c:2500)
    by 0x5CEEBF5: wait_for_something (schedule.c:2829)
    by 0x5CF1D5A: wait_for_action_or_deadline_settime_c (schedule.c:3479)
    by 0x7A38E37: resolv_wait_answer (query.c:4171)
    by 0x7A3AF2E: end_query_helper (query.c:4827)
    by 0x7A3BA18: lookup_resolv_cache_nonblocked (query.c:5037)
    by 0x7A21396: call_lookup_resolv_cache (resolv.c:3853)
    by 0x7A1F5CE: fill_query_resolv_cache (resolv.c:3081)
    Address 0x8a896b4 is 84 bytes inside a block of size 152 alloc'd
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
    by 0x7A2C211: new_resolv_message_state (query.c:1053)
    by 0x7A330C3: give_resolv_process (query.c:2805)
    by 0x7A33CBC: have_non_blocking_qm (query.c:2975)
    by 0x7A23F92: lookup_service_addresses2 (resolv.c:4654)
    by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
    by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
    by 0x5CFE110: service_entry_hook (service_list.c:2681)
    by 0x5D000B3: gse_scan_hostname (service_list.c:3277)
    by 0x5D02B37: give_service_entry5 (service_list.c:4129)
    by 0x535B87B: htrem_give_service_entry (hashmark_remote.c:3521)
    Uninitialised value was created by a heap allocation
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD2445: safe_malloc (safemalloc.c:60)
    by 0x7A2984B: new_resolv_query_hdr (query.c:63)
    by 0x7A37181: query_one_name (query.c:3769)
    by 0x7A3B9D9: lookup_resolv_cache_nonblocked (query.c:5031)
    by 0x7A21396: call_lookup_resolv_cache (resolv.c:3853)
    by 0x7A1F5CE: fill_query_resolv_cache (resolv.c:3081)
    by 0x7A1FE26: query_resolv_cache (resolv.c:3311)
    by 0x7A260AF: lookup_service_addresses2 (resolv.c:5037)
    by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
    by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
    by 0x5CFE110: service_entry_hook (service_list.c:2681)

    - Used bzero() for union xxx_rand initialization of
    real_wait_select() and real_wait_poll(). This tries
    avoid valgrind's uninitialized memory warnings
    (although uninitialized bytes does not really harm
    because that data is feed to random generator).

    - Added int nested_FreeStreamStack0; to struct streamsched
    - Fixed valgrind reported error:
    Invalid read of size 8
    at 0x5D1C5CC: ss_FreeSocket (streamsched.c:235)
    by 0x5D1DD96: free_stack (streamsched.c:757)
    by 0x5D21D4D: FreeStreamStack0 (streamsched.c:1931)
    by 0x5D21EA6: FreeStreamStack2 (streamsched.c:1966)
    by 0x5316A2C: mbx_close_pop (pop.c:1851)
    by 0x52BB7AC: close_folder (mbox.c:1038)
    by 0x48E471: close_cleanup_mbox (leavembox.c:745)
    by 0x4D475A: quit (quit.c:150)
    by 0x498AB5: main_messages_loop (mailbox.c:819)
    by 0x498EB2: main_messages_menu (mailbox.c:964)
    by 0x46A5BC: main (elm.c:1677)
    Address 0x8ab2270 is 80 bytes inside a block of size 104 free'd
    at 0x4C2EDEB: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD34C5: safe_free (safemalloc.c:354)
    by 0x5D21E51: FreeStreamStack0 (streamsched.c:1950)
    by 0x5D1DAF2: free_ss_data (streamsched.c:704)
    by 0x5CE1509: remove_action0 (schedule.c:175)
    by 0x5CE4942: clear_action_idx (schedule.c:812)
    by 0x5CE4AEE: clear_action0 (schedule.c:837)
    by 0x5D1C5C7: ss_FreeSocket (streamsched.c:231)
    by 0x5D1DD96: free_stack (streamsched.c:757)
    by 0x5D21D4D: FreeStreamStack0 (streamsched.c:1931)
    by 0x5D21EA6: FreeStreamStack2 (streamsched.c:1966)
    by 0x5316A2C: mbx_close_pop (pop.c:1851)
    by 0x52BB7AC: close_folder (mbox.c:1038)
    by 0x48E471: close_cleanup_mbox (leavembox.c:745)
    by 0x4D475A: quit (quit.c:150)
    by 0x498AB5: main_messages_loop (mailbox.c:819)
    by 0x498EB2: main_messages_menu (mailbox.c:964)
    by 0x46A5BC: main (elm.c:1677)
    Block was alloc'd at
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
    by 0x5D21660: returnSimpleStream (streamsched.c:1771)
    by 0x5CCCC17: connect_remote_account (remote_mbx.c:4189)
    by 0x535CC35: htrem_have_connection (hashmark_remote.c:3897)
    by 0x535E5F9: hashtype_selectbr_item_remote (hashmark_remote.c:4415)
    by 0x534E16F: hashmark_selectbr_item (hashmark.c:2789)
    by 0x53619FE: browser_select_hashmark (hashmark_browser.c:402)
    by 0x52F6C1A: select_dir_item_helper (savefolder.c:5029)
    by 0x52F6F2F: select_dir_item (savefolder.c:5088)
    by 0x44958D: browser_expand (browser.c:707)
    by 0x44C8FA: gb_browser (browser.c:1966)
    by 0x46D509: enter_helper (enter_helper.c:426)
    by 0x44D600: run_browser (browser.c:2326)
    by 0x450010: gen_browser (browser.c:3334)
    by 0x488220: select_folder (init.c:89)
    by 0x48A9F9: initialize_mailbox (init.c:980)
    by 0x498E4E: main_messages_menu (mailbox.c:951)
    by 0x46A5BC: main (elm.c:1677)

    - Possibly fixed valgrind reported error:
    Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
    at 0x6505590: __sendmsg_nocancel (syscall-template.S:84)
    by 0x7A2A746: write_message (query.c:444)
    by 0x7A32044: resolv_write_message (query.c:2573)
    by 0x5CEA1EF: real_wait_select (schedule.c:2021)
    by 0x5CED04C: real_wait (schedule.c:2509)
    by 0x5CEEC24: wait_for_something (schedule.c:2838)
    by 0x5CF0DEC: wait_for_action_or_timeout (schedule.c:3271)
    by 0x7A34BC4: free_non_blocking_qm (query.c:3235)
    by 0x7A295F6: free_shared_cache (resolv.c:5948)
    by 0x5CD9D80: free_shared_cache1 (shared.c:2010)
    by 0x5CDA184: free_shared_caches (shared.c:2067)
    by 0x50AD0E: leave (utils.c:440)
    by 0x46A78B: main (elm.c:1719)
    Address 0x8a72914 is 84 bytes inside a block of size 152 alloc'd
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
    by 0x7A2C211: new_resolv_message_state (query.c:1058)
    by 0x7A330C3: give_resolv_process (query.c:2814)
    by 0x7A33CBC: have_non_blocking_qm (query.c:2984)
    by 0x7A23F92: lookup_service_addresses2 (resolv.c:4654)
    by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
    by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
    by 0x5CFE13F: service_entry_hook (service_list.c:2681)
    by 0x5D000E2: gse_scan_hostname (service_list.c:3277)
    by 0x5D02B66: give_service_entry5 (service_list.c:4129)
    by 0x535B87B: htrem_give_service_entry (hashmark_remote.c:3521)
    by 0x535C89F: htrem_have_connection (hashmark_remote.c:3829)
    by 0x535E5F9: hashtype_selectbr_item_remote (hashmark_remote.c:4415)
    by 0x534E16F: hashmark_selectbr_item (hashmark.c:2789)
    by 0x53619FE: browser_select_hashmark (hashmark_browser.c:402)
    by 0x52F6C1A: select_dir_item_helper (savefolder.c:5029)
    by 0x52F6F2F: select_dir_item (savefolder.c:5088)
    by 0x44958D: browser_expand (browser.c:707)
    by 0x44C8FA: gb_browser (browser.c:1966)
    Uninitialised value was created by a stack allocation
    at 0x7A17790: ??? (in /tmp/TEST/lib64/libelmme-resolv.so.1.1.54+)

    - Fixed valgrind reported memory leak:
    6 bytes in 2 blocks are definitely lost in loss record 125 of 3,254
    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x5CD2445: safe_malloc (safemalloc.c:60)
    by 0x531C832: pop_got_line (pop.c:3636)
    by 0x531CF8E: mbx_copy_header_pop (pop.c:3771)
    by 0x52C5E72: copy_header_folder (mbox.c:3495)

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)