System: Arch Linux x86-64, opencl-mesa (1.1), R9 280,
Whitespace in my tree is a little dirty, so line numbers might not match exactly. It segfaults reliably on master as well. I can't reproduce the issue on Windows, so I think it might be something more than just a double-free.
Here's a GDB backtrace and some preliminary investigation; I'll leave a reply if I have time to dig further:
*** Error in `/home/adam/Programs/sgminer/sgminer': double free or corruption (fasttop): 0x00000001003f4910 ***
[snip enormous backtrace]
(gdb) bt
#0 0x00007f64332098c0 in raise () from /usr/lib/libc.so.6
#1 0x00007f643320af72 in abort () from /usr/lib/libc.so.6
#2 0x00007f6433248be2 in __libc_message () from /usr/lib/libc.so.6
#3 0x00007f643324f2ec in malloc_printerr () from /usr/lib/libc.so.6
#4 0x00007f64332506d1 in _int_free () from /usr/lib/libc.so.6
#5 0x0000000100054fc1 in update_config_intensity (profile=0x1003f36d0)
at config_parser.c:2061
#6 0x00000001000453bc in manage_gpu () at driver-opencl.c:888
#7 0x000000010001bb44 in input_thread (userdata=0x10049f9c8) at sgminer.c:4805
#8 0x00007f6433583049 in start_thread () from /usr/lib/libpthread.so.0
#9 0x00007f64332c3f0f in clone () from /usr/lib/libc.so.6
(gdb) up
#1 0x00007f643320af72 in abort () from /usr/lib/libc.so.6
(gdb) up
#2 0x00007f6433248be2 in __libc_message () from /usr/lib/libc.so.6
(gdb) up
#3 0x00007f643324f2ec in malloc_printerr () from /usr/lib/libc.so.6
(gdb) up
#4 0x00007f64332506d1 in _int_free () from /usr/lib/libc.so.6
(gdb) up
#5 0x0000000100054fc1 in update_config_intensity (profile=0x1003f36d0)
at config_parser.c:2061
2061 free(default_profile.intensity);
(gdb) print default_profile
$1 = {profile_no = 0, name = 0x1003f4750 "scrypt", removed = false, algorithm = {
name = "ckolivas", '\000' <repeats 11 times>, type = ALGO_SCRYPT,
kernelfile = 0x10015ef90 "", n = 1024, nfactor = 10 '\n', diff_multiplier1 = 1,
diff_multiplier2 = 65536, share_diff_multiplier = 65536, xintensity_shift = 0,
intensity_shift = 0, found_idx = 255, diff_numerator = 4294967295, diff1targ = 65535,
n_extra_kernels = 0, rw_buffer_size = -1, cq_properties = 1,
regenhash = 0x10005babb <scrypt_regenhash>,
queue_kernel = 0x10004bae3 <queue_scrypt_kernel>, gen_hash = 0x10004b5b9 <gen_hash>,
set_compile_options = 0x10004b676 <append_scrypt_compiler_options>},
devices = 0x100505220 "all", intensity = 0x1003f4910 "\300lM", xintensity = 0x1003ec960 "",
rawintensity = 0x1003ec980 "", lookup_gap = 0x1003f4870 "2", gpu_engine = 0x0,
gpu_memclock = 0x0, gpu_threads = 0x0, gpu_fan = 0x0, gpu_powertune = 0x0, gpu_vddc = 0x0,
shaders = 0x0, thread_concurrency = 0x0, worksize = 0x0}
(gdb) print default_profile.intensity
$2 = 0x1003f4910 "\300lM"
(gdb) print profile->intensity
$3 = 0x7f640c000ad0 "d"
(gdb) print default_profile.intensity
$4 = 0x1003f4910 "\300lM"
System: Arch Linux x86-64, opencl-mesa (1.1), R9 280,
Whitespace in my tree is a little dirty, so line numbers might not match exactly. It segfaults reliably on master as well. I can't reproduce the issue on Windows, so I think it might be something more than just a double-free.
Here's a GDB backtrace and some preliminary investigation; I'll leave a reply if I have time to dig further: