[Pkg-mutt-maintainers] Bug#838720: pager crashes when maildir is modified while viewing message

Peter Colberg peter at colberg.org
Mon Jul 17 00:58:41 UTC 2017


Hi Antonio,

On Tue, Dec 06, 2016 at 08:24:43AM +0000, Antonio Radici wrote:
> Peter, do you have time to try neomutt standard without Debian patches? That at
> least will help us to undestand if it's a rogue patch or if the problem is in
> neomutt.

I built mutt 1.7.2-1 under Debian stretch amd64 disabling these patches:

# neomutt-20170113.patch
# neomutt-devel/832971-reset-xlabel.patch

I ran "quilt refresh" for all subsequent patches in debian/patches/series.

Following the procedure described in my previous message,

https://bugs.debian.org/838720#103

mutt no longer performs an "invalid read" (see attached valgrind log).

The culprit for the pager segfault is NeoMutt.

Regards,
Peter
-------------- next part --------------
==19224== Memcheck, a memory error detector
==19224== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==19224== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==19224== Command: mutt
==19224== Parent PID: 19031
==19224== 
==19224== Conditional jump or move depends on uninitialised value(s)
==19224==    at 0x6E16009: re_compile_fastmap_iter.isra.24 (regcomp.c:328)
==19224==    by 0x6E1E6A5: re_compile_fastmap (regcomp.c:280)
==19224==    by 0x6E1ED3A: regcomp (regcomp.c:509)
==19224==    by 0x1443F7: parse_attach_list (init.c:971)
==19224==    by 0x1443F7: parse_attachments (init.c:1137)
==19224==    by 0x144D46: mutt_parse_rc_line.part.11 (init.c:2378)
==19224==    by 0x144F3F: mutt_parse_rc_line (init.c:2300)
==19224==    by 0x144F3F: source_rc (init.c:2286)
==19224==    by 0x14826E: mutt_init (init.c:3194)
==19224==    by 0x11CCA3: main (main.c:798)
==19224== 
==19224== Conditional jump or move depends on uninitialised value(s)
==19224==    at 0x6E16009: re_compile_fastmap_iter.isra.24 (regcomp.c:328)
==19224==    by 0x6E1E6C7: re_compile_fastmap (regcomp.c:282)
==19224==    by 0x6E1ED3A: regcomp (regcomp.c:509)
==19224==    by 0x1443F7: parse_attach_list (init.c:971)
==19224==    by 0x1443F7: parse_attachments (init.c:1137)
==19224==    by 0x144D46: mutt_parse_rc_line.part.11 (init.c:2378)
==19224==    by 0x144F3F: mutt_parse_rc_line (init.c:2300)
==19224==    by 0x144F3F: source_rc (init.c:2286)
==19224==    by 0x14826E: mutt_init (init.c:3194)
==19224==    by 0x11CCA3: main (main.c:798)
==19224== 
==19224== Conditional jump or move depends on uninitialised value(s)
==19224==    at 0x6E16009: re_compile_fastmap_iter.isra.24 (regcomp.c:328)
==19224==    by 0x6E1E6A5: re_compile_fastmap (regcomp.c:280)
==19224==    by 0x6E1ED3A: regcomp (regcomp.c:509)
==19224==    by 0x150D56: mutt_parse_hook (hook.c:186)
==19224==    by 0x144D46: mutt_parse_rc_line.part.11 (init.c:2378)
==19224==    by 0x144F3F: mutt_parse_rc_line (init.c:2300)
==19224==    by 0x144F3F: source_rc (init.c:2286)
==19224==    by 0x145181: parse_source (init.c:2336)
==19224==    by 0x144D46: mutt_parse_rc_line.part.11 (init.c:2378)
==19224==    by 0x144F3F: mutt_parse_rc_line (init.c:2300)
==19224==    by 0x144F3F: source_rc (init.c:2286)
==19224==    by 0x145181: parse_source (init.c:2336)
==19224==    by 0x144D46: mutt_parse_rc_line.part.11 (init.c:2378)
==19224==    by 0x144F3F: mutt_parse_rc_line (init.c:2300)
==19224==    by 0x144F3F: source_rc (init.c:2286)
==19224== 
==19224== Conditional jump or move depends on uninitialised value(s)
==19224==    at 0x6E16009: re_compile_fastmap_iter.isra.24 (regcomp.c:328)
==19224==    by 0x6E1E6C7: re_compile_fastmap (regcomp.c:282)
==19224==    by 0x6E1ED3A: regcomp (regcomp.c:509)
==19224==    by 0x150D56: mutt_parse_hook (hook.c:186)
==19224==    by 0x144D46: mutt_parse_rc_line.part.11 (init.c:2378)
==19224==    by 0x144F3F: mutt_parse_rc_line (init.c:2300)
==19224==    by 0x144F3F: source_rc (init.c:2286)
==19224==    by 0x145181: parse_source (init.c:2336)
==19224==    by 0x144D46: mutt_parse_rc_line.part.11 (init.c:2378)
==19224==    by 0x144F3F: mutt_parse_rc_line (init.c:2300)
==19224==    by 0x144F3F: source_rc (init.c:2286)
==19224==    by 0x145181: parse_source (init.c:2336)
==19224==    by 0x144D46: mutt_parse_rc_line.part.11 (init.c:2378)
==19224==    by 0x144F3F: mutt_parse_rc_line (init.c:2300)
==19224==    by 0x144F3F: source_rc (init.c:2286)
==19224== 
==19231== Warning: invalid file descriptor 1024 in syscall close()
==19231== Warning: invalid file descriptor 1025 in syscall close()
==19231== Warning: invalid file descriptor 1026 in syscall close()
==19231== Warning: invalid file descriptor 1027 in syscall close()
==19231==    Use --log-fd=<number> to select an alternative log fd.
==19231== Warning: invalid file descriptor 1028 in syscall close()
==19231== Warning: invalid file descriptor 1029 in syscall close()
==19230== 
==19230== HEAP SUMMARY:
==19230==     in use at exit: 1,440,290 bytes in 3,179 blocks
==19230==   total heap usage: 4,385 allocs, 1,206 frees, 1,639,162 bytes allocated
==19230== 
==19230== LEAK SUMMARY:
==19230==    definitely lost: 0 bytes in 0 blocks
==19230==    indirectly lost: 0 bytes in 0 blocks
==19230==      possibly lost: 0 bytes in 0 blocks
==19230==    still reachable: 1,440,290 bytes in 3,179 blocks
==19230==         suppressed: 0 bytes in 0 blocks
==19230== Rerun with --leak-check=full to see details of leaked memory
==19230== 
==19230== For counts of detected and suppressed errors, rerun with: -v
==19230== Use --track-origins=yes to see where uninitialised values come from
==19230== ERROR SUMMARY: 16 errors from 4 contexts (suppressed: 0 from 0)
==19233== Warning: invalid file descriptor 1024 in syscall close()
==19233== Warning: invalid file descriptor 1025 in syscall close()
==19233== Warning: invalid file descriptor 1026 in syscall close()
==19233== Warning: invalid file descriptor 1027 in syscall close()
==19233==    Use --log-fd=<number> to select an alternative log fd.
==19233== Warning: invalid file descriptor 1028 in syscall close()
==19233== Warning: invalid file descriptor 1029 in syscall close()
==19232== 
==19232== HEAP SUMMARY:
==19232==     in use at exit: 1,440,543 bytes in 3,190 blocks
==19232==   total heap usage: 4,396 allocs, 1,206 frees, 1,639,415 bytes allocated
==19232== 
==19232== LEAK SUMMARY:
==19232==    definitely lost: 0 bytes in 0 blocks
==19232==    indirectly lost: 0 bytes in 0 blocks
==19232==      possibly lost: 0 bytes in 0 blocks
==19232==    still reachable: 1,440,543 bytes in 3,190 blocks
==19232==         suppressed: 0 bytes in 0 blocks
==19232== Rerun with --leak-check=full to see details of leaked memory
==19232== 
==19232== For counts of detected and suppressed errors, rerun with: -v
==19232== Use --track-origins=yes to see where uninitialised values come from
==19232== ERROR SUMMARY: 16 errors from 4 contexts (suppressed: 0 from 0)
==19235== Warning: invalid file descriptor 1024 in syscall close()
==19235== Warning: invalid file descriptor 1025 in syscall close()
==19235== Warning: invalid file descriptor 1026 in syscall close()
==19235== Warning: invalid file descriptor 1027 in syscall close()
==19235==    Use --log-fd=<number> to select an alternative log fd.
==19235== Warning: invalid file descriptor 1028 in syscall close()
==19235== Warning: invalid file descriptor 1029 in syscall close()
==19234== 
==19234== HEAP SUMMARY:
==19234==     in use at exit: 1,440,571 bytes in 3,192 blocks
==19234==   total heap usage: 4,398 allocs, 1,206 frees, 1,639,443 bytes allocated
==19234== 
==19234== LEAK SUMMARY:
==19234==    definitely lost: 0 bytes in 0 blocks
==19234==    indirectly lost: 0 bytes in 0 blocks
==19234==      possibly lost: 0 bytes in 0 blocks
==19234==    still reachable: 1,440,571 bytes in 3,192 blocks
==19234==         suppressed: 0 bytes in 0 blocks
==19234== Rerun with --leak-check=full to see details of leaked memory
==19234== 
==19234== For counts of detected and suppressed errors, rerun with: -v
==19234== Use --track-origins=yes to see where uninitialised values come from
==19234== ERROR SUMMARY: 16 errors from 4 contexts (suppressed: 0 from 0)
==19237== Warning: invalid file descriptor 1024 in syscall close()
==19237== Warning: invalid file descriptor 1025 in syscall close()
==19237== Warning: invalid file descriptor 1026 in syscall close()
==19237== Warning: invalid file descriptor 1027 in syscall close()
==19237==    Use --log-fd=<number> to select an alternative log fd.
==19237== Warning: invalid file descriptor 1028 in syscall close()
==19237== Warning: invalid file descriptor 1029 in syscall close()
==19236== 
==19236== HEAP SUMMARY:
==19236==     in use at exit: 1,440,639 bytes in 3,195 blocks
==19236==   total heap usage: 4,401 allocs, 1,206 frees, 1,639,511 bytes allocated
==19236== 
==19237== 
==19237== HEAP SUMMARY:
==19237==     in use at exit: 1,440,639 bytes in 3,195 blocks
==19237==   total heap usage: 4,402 allocs, 1,207 frees, 1,672,327 bytes allocated
==19237== 
==19236== LEAK SUMMARY:
==19236==    definitely lost: 0 bytes in 0 blocks
==19236==    indirectly lost: 0 bytes in 0 blocks
==19236==      possibly lost: 0 bytes in 0 blocks
==19236==    still reachable: 1,440,639 bytes in 3,195 blocks
==19236==         suppressed: 0 bytes in 0 blocks
==19236== Rerun with --leak-check=full to see details of leaked memory
==19236== 
==19236== For counts of detected and suppressed errors, rerun with: -v
==19236== Use --track-origins=yes to see where uninitialised values come from
==19236== ERROR SUMMARY: 16 errors from 4 contexts (suppressed: 0 from 0)
==19237== LEAK SUMMARY:
==19237==    definitely lost: 0 bytes in 0 blocks
==19237==    indirectly lost: 0 bytes in 0 blocks
==19237==      possibly lost: 0 bytes in 0 blocks
==19237==    still reachable: 1,440,639 bytes in 3,195 blocks
==19237==         suppressed: 0 bytes in 0 blocks
==19237== Rerun with --leak-check=full to see details of leaked memory
==19237== 
==19237== For counts of detected and suppressed errors, rerun with: -v
==19237== Use --track-origins=yes to see where uninitialised values come from
==19237== ERROR SUMMARY: 16 errors from 4 contexts (suppressed: 0 from 0)
==19239== Warning: invalid file descriptor 1024 in syscall close()
==19239== Warning: invalid file descriptor 1025 in syscall close()
==19239== Warning: invalid file descriptor 1026 in syscall close()
==19239== Warning: invalid file descriptor 1027 in syscall close()
==19239==    Use --log-fd=<number> to select an alternative log fd.
==19239== Warning: invalid file descriptor 1028 in syscall close()
==19239== Warning: invalid file descriptor 1029 in syscall close()
==19238== 
==19238== HEAP SUMMARY:
==19238==     in use at exit: 1,440,708 bytes in 3,198 blocks
==19238==   total heap usage: 4,404 allocs, 1,206 frees, 1,639,580 bytes allocated
==19238== 
==19238== LEAK SUMMARY:
==19238==    definitely lost: 0 bytes in 0 blocks
==19238==    indirectly lost: 0 bytes in 0 blocks
==19238==      possibly lost: 0 bytes in 0 blocks
==19238==    still reachable: 1,440,708 bytes in 3,198 blocks
==19238==         suppressed: 0 bytes in 0 blocks
==19238== Rerun with --leak-check=full to see details of leaked memory
==19238== 
==19238== For counts of detected and suppressed errors, rerun with: -v
==19238== Use --track-origins=yes to see where uninitialised values come from
==19238== ERROR SUMMARY: 16 errors from 4 contexts (suppressed: 0 from 0)
==19224== 
==19224== HEAP SUMMARY:
==19224==     in use at exit: 855,152 bytes in 2,651 blocks
==19224==   total heap usage: 46,567 allocs, 43,916 frees, 12,780,046 bytes allocated
==19224== 
==19224== LEAK SUMMARY:
==19224==    definitely lost: 0 bytes in 0 blocks
==19224==    indirectly lost: 0 bytes in 0 blocks
==19224==      possibly lost: 0 bytes in 0 blocks
==19224==    still reachable: 855,152 bytes in 2,651 blocks
==19224==         suppressed: 0 bytes in 0 blocks
==19224== Rerun with --leak-check=full to see details of leaked memory
==19224== 
==19224== For counts of detected and suppressed errors, rerun with: -v
==19224== Use --track-origins=yes to see where uninitialised values come from
==19224== ERROR SUMMARY: 16 errors from 4 contexts (suppressed: 0 from 0)


More information about the Pkg-mutt-maintainers mailing list