Hi, Vincent! Thanks for your answer! I made some tests today. Yes, it crashes only if hostname contains an odd number of symbols!
Alexander 2016-03-26 22:04 GMT+06:00 Vincent Bernat <ber...@luffy.cx>: > ❦ 26 mars 2016 08:33 +0100, Baptiste <bed...@gmail.com> : > > >> When I use resolvers check in 1.6.3 haproxy, it is crashed with "Bus > error". > >> pstack with core file shows me: > >> > >> 000a6d1c dns_build_query (11f921, 1c, 16a650, 21, 11f8f0, 1238f0) + a8 > >> 000a6d58 dns_send_query (16a698, 10be18, 0, 13ac90, 0, 8f1b) + 24 > >> 00048f28 trigger_resolution (169db8, 16a698, 13acc8, 65, 8f1b, 8f1b) + > c0 > >> 0004d4bc process_chk (12f8a8, 80000003, 116800, 10c000, 1, 16a1a8) + 28c > >> 00022dbc process_runnable_tasks (10c0d4, 92ffc, 10c000, 10c000, 10c0e4, > 0) + > >> 174 > >> 00019354 run_poll_loop (10c000, 116800, 10c000, 10be2c, 11cbf0, 116968) > + c8 > >> 000159d0 main (4, ffbffba4, ffffffff, 106704, 10bc00, 10bc00) + 618 > >> 00016468 _start (4, ffbffba4, ffbffbb8, ffbffcbb, ffffffff, 1e) + 5c > > > > Hi > > > > Can't you provide more information? > > I have no access to sparc machines, so it will be complicated to > > reproduce the problem. > > > > Could it be related to an endianess mismatch ? > > A bus error on Sparc is more likely an alignment problem. You cannot > reproduce with QEMU since, AFAIK, it doesn't emulate this > behavior. Moreover, Linux doesn't offer anything to catch alignment > errors. > > Looking at the code, the alignment of qinfo is dependent of the size of > the hostname. Therefore, it should be easy to test: Александр, keep only > one hostname in your configuration and add 1 character to it. Does it > still crash? The fix would be to take struct dns_question on the stack > and copy it with memcpy. > -- > Let the data structure the program. > - The Elements of Programming Style (Kernighan & Plauger) >