Краш midnight commander на работе с fish (копирование каталога), пересобран c -g -O0

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
==30377== Memcheck, a memory error detector.
==30377== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
==30377== Using LibVEX rev 1884, a library for dynamic binary translation.
==30377== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==30377== Using valgrind-3.4.1-Debian, a dynamic binary instrumentation framework.
==30377== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==30377== For more details, rerun with: -v
==30377==
==30377== Warning: invalid file descriptor -1 in syscall close()
==30377== Warning: invalid file descriptor -1 in syscall close()
==30377== Conditional jump or move depends on uninitialised value(s)
==30377== at 0x809DCCF: get_user_permissions (utilunix.c:788)
==30377== by 0x808B132: add_permission_string (screen.c:141)
==30377== by 0x808BE4C: format_file (screen.c:557)
==30377== by 0x808C1E2: repaint_file (screen.c:614)
==30377== by 0x808C75F: paint_dir (screen.c:685)
==30377== by 0x8090712: panel_callback (screen.c:2408)
==30377== by 0x8068487: send_message (dialog.h:207)
==30377== by 0x80684E9: dlg_focus (dialog.c:349)
==30377== by 0x8068710: do_select_widget (dialog.c:451)
==30377== by 0x80687EB: dlg_select_widget (dialog.c:481)
==30377== by 0x8083B4D: setup_panels_and_run_mc (main.c:1788)
==30377== by 0x8083DD4: do_nc (main.c:1865)
==30377== Uninitialised value was created by a heap allocation
==30377== at 0x4026FDE: malloc (vg_replace_malloc.c:207)
==30377== by 0x4090283: g_malloc (in /usr/lib/libglib-2.0.so.0.2000.1)
==30377== by 0x808DB86: panel_new (screen.c:1118)
==30377== by 0x807FF52: set_display_type (layout.c:958)
==30377== by 0x8082822: create_panels (main.c:1101)
==30377== by 0x8083066: setup_mc (main.c:1432)
==30377== by 0x8083DCF: do_nc (main.c:1864)
==30377== by 0x8084788: main (main.c:2352)
==30377==
==30377== Conditional jump or move depends on uninitialised value(s)
==30377== at 0x809DD05: get_user_permissions (utilunix.c:792)
==30377== by 0x808B132: add_permission_string (screen.c:141)
==30377== by 0x808BE4C: format_file (screen.c:557)
==30377== by 0x808C1E2: repaint_file (screen.c:614)
==30377== by 0x808C75F: paint_dir (screen.c:685)
==30377== by 0x8090712: panel_callback (screen.c:2408)
==30377== by 0x8068487: send_message (dialog.h:207)
==30377== by 0x80684E9: dlg_focus (dialog.c:349)
==30377== by 0x8068710: do_select_widget (dialog.c:451)
==30377== by 0x80687EB: dlg_select_widget (dialog.c:481)
==30377== by 0x8083B4D: setup_panels_and_run_mc (main.c:1788)
==30377== by 0x8083DD4: do_nc (main.c:1865)
==30377== Uninitialised value was created by a heap allocation
==30377== at 0x4026FDE: malloc (vg_replace_malloc.c:207)
==30377== by 0x4090283: g_malloc (in /usr/lib/libglib-2.0.so.0.2000.1)
==30377== by 0x808DB86: panel_new (screen.c:1118)
==30377== by 0x807FF52: set_display_type (layout.c:958)
==30377== by 0x8082822: create_panels (main.c:1101)
==30377== by 0x8083066: setup_mc (main.c:1432)
==30377== by 0x8083DCF: do_nc (main.c:1864)
==30377== by 0x8084788: main (main.c:2352)
==30377==
==30377== Syscall param ioctl(TIOCLINUX) points to uninitialised byte(s)
==30377== at 0x420E524: ioctl (in /lib/libc-2.9.so)
==30377== by 0x807CE1F: correct_key_code (key.c:731)
==30377== by 0x807D028: get_key_code (key.c:865)
==30377== by 0x807D6A3: getch_with_delay (key.c:1043)
==30377== by 0x807D994: get_event (key.c:1174)
==30377== by 0x806910D: frontend_run_dlg (dialog.c:806)
==30377== by 0x806903E: run_dlg (dialog.c:823)
==30377== by 0x8083B70: setup_panels_and_run_mc (main.c:1793)
==30377== by 0x8083DD4: do_nc (main.c:1865)
==30377== by 0x8084788: main (main.c:2352)
==30377== Address 0xbeee3d81 is on thread 1's stack
==30377== Uninitialised value was created by a stack allocation
==30377== at 0x807E095: get_modifier (key.c:1349)
==30377==
==30377== Syscall param ioctl(TIOCLINUX) points to uninitialised byte(s)
==30377== at 0x420E524: ioctl (in /lib/libc-2.9.so)
==30377== by 0x807CE1F: correct_key_code (key.c:731)
==30377== by 0x807D484: get_key_code (key.c:985)
==30377== by 0x807D6A3: getch_with_delay (key.c:1043)
==30377== by 0x807D994: get_event (key.c:1174)
==30377== by 0x806910D: frontend_run_dlg (dialog.c:806)
==30377== by 0x806903E: run_dlg (dialog.c:823)
==30377== by 0x8083B70: setup_panels_and_run_mc (main.c:1793)
==30377== by 0x8083DD4: do_nc (main.c:1865)
==30377== by 0x8084788: main (main.c:2352)
==30377== Address 0xbeee3d81 is on thread 1's stack
==30377== Uninitialised value was created by a stack allocation
==30377== at 0x807E095: get_modifier (key.c:1349)
==30377==
==30377== Invalid read of size 4
==30377== at 0x80D43B5: vfs_s_generate_entry (direntry.c:188)
==30377== by 0x80D5521: vfs_s_open (direntry.c:763)
==30377== by 0x80CFFE6: fish_open (fish.c:1146)
==30377== by 0x80D8FB4: mc_open (vfs.c:547)
==30377== by 0x806DBD4: copy_file_file (file.c:553)
==30377== by 0x806E770: copy_dir_dir (file.c:934)
==30377== by 0x80708F3: panel_operate (file.c:1950)
==30377== by 0x8061978: copy_cmd (cmd.c:339)
==30377== by 0x80AB5A5: buttonbar_call (widget.c:2423)
==30377== by 0x80AB6A7: buttonbar_callback (widget.c:2454)
==30377== by 0x8068A4C: dlg_try_hotkey (dialog.c:628)
==30377== by 0x8068B31: dlg_key_event (dialog.c:666)
==30377== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==30377==
==30377== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==30377== Access not within mapped region at address 0x0
==30377== at 0x80D43B5: vfs_s_generate_entry (direntry.c:188)
==30377== by 0x80D5521: vfs_s_open (direntry.c:763)
==30377== by 0x80CFFE6: fish_open (fish.c:1146)
==30377== by 0x80D8FB4: mc_open (vfs.c:547)
==30377== by 0x806DBD4: copy_file_file (file.c:553)
==30377== by 0x806E770: copy_dir_dir (file.c:934)
==30377== by 0x80708F3: panel_operate (file.c:1950)
==30377== by 0x8061978: copy_cmd (cmd.c:339)
==30377== by 0x80AB5A5: buttonbar_call (widget.c:2423)
==30377== by 0x80AB6A7: buttonbar_callback (widget.c:2454)
==30377== by 0x8068A4C: dlg_try_hotkey (dialog.c:628)
==30377== by 0x8068B31: dlg_key_event (dialog.c:666)
==30377== If you believe this happened as a result of a stack overflow in your
==30377== program's main thread (unlikely but possible), you can try to increase
==30377== the size of the main thread stack using the --main-stacksize= flag.
==30377== The main thread stack size used in this run was 8388608.
==30377==
==30377== ERROR SUMMARY: 6053 errors from 5 contexts (suppressed: 44 from 3)
==30377== malloc/free: in use at exit: 590,862 bytes in 2,032 blocks.
==30377== malloc/free: 23,271 allocs, 21,239 frees, 1,112,579 bytes allocated.
==30377== For counts of detected errors, rerun with: -v
==30377== searching for pointers to 2,032 not-freed blocks.
==30377== checked 772,692 bytes.
==30377==
==30377==
==30377== 156 (36 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 5 of 44
==30377== at 0x4026FDE: malloc (vg_replace_malloc.c:207)
==30377== by 0x42261E2: (within /lib/libc-2.9.so)
==30377== by 0x422695D: __nss_database_lookup (in /lib/libc-2.9.so)
==30377== by 0x403DF4B: ???
==30377== by 0x403ECD4: ???
==30377== by 0x41DDEC1: getpwuid_r (in /lib/libc-2.9.so)
==30377== by 0x41DD7F6: getpwuid (in /lib/libc-2.9.so)
==30377== by 0x809CDE4: mc_tmpdir (utilunix.c:261)
==30377== by 0x80845A4: main (main.c:2250)
==30377==
==30377==
==30377== 83 bytes in 9 blocks are definitely lost in loss record 13 of 44
==30377== at 0x4026FDE: malloc (vg_replace_malloc.c:207)
==30377== by 0x4090283: g_malloc (in /usr/lib/libglib-2.0.so.0.2000.1)
==30377== by 0x40A8FA8: g_strdup (in /usr/lib/libglib-2.0.so.0.2000.1)
==30377== by 0x80D8EA0: vfs_translate_path_n (vfs.c:501)
==30377== by 0x80DA379: _vfs_get_cwd (vfs.c:888)
==30377== by 0x80DA517: vfs_setup_wd (vfs.c:922)
==30377== by 0x80DAE3A: vfs_init (vfs.c:1245)
==30377== by 0x80845DE: main (main.c:2263)
==30377==
==30377==
==30377== 1,488 bytes in 6 blocks are possibly lost in loss record 31 of 44
==30377== at 0x4024EFA: memalign (vg_replace_malloc.c:460)
==30377== by 0x4024FAE: posix_memalign (vg_replace_malloc.c:569)
==30377== by 0x40A5A02: (within /usr/lib/libglib-2.0.so.0.2000.1)
==30377== by 0x40A71E2: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.2000.1)
==30377== by 0x40A72E4: g_slice_alloc0 (in /usr/lib/libglib-2.0.so.0.2000.1)
==30377== by 0x4080FA0: (within /usr/lib/libglib-2.0.so.0.2000.1)
==30377== by 0x4081039: g_key_file_new (in /usr/lib/libglib-2.0.so.0.2000.1)
==30377== by 0x80E4B92: mc_config_init (common.c:58)
==30377== by 0x80920E4: load_setup (setup.c:599)
==30377== by 0x8084649: main (main.c:2306)
==30377==
==30377== LEAK SUMMARY:
==30377== definitely lost: 119 bytes in 10 blocks.
==30377== indirectly lost: 120 bytes in 10 blocks.
==30377== possibly lost: 1,488 bytes in 6 blocks.
==30377== still reachable: 589,135 bytes in 2,006 blocks.
==30377== suppressed: 0 bytes in 0 blocks.
==30377== Reachable blocks (those to which a pointer was found) are not shown.
==30377== To see them, rerun with: --leak-check=full --show-reachable=yes