{"push_id":1180990563,"size":13,"distinct_size":2,"ref":"refs/heads/master","head":"bde660ec3671dd5e3aafc8fb09fa2f71cd381514","before":"2b03cf7c453f1ae221309f715e813771cd112b8a","commits":[{"sha":"fa0a7725cb77506cef78fa17bc9cae47d48519a0","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Make malloc/free diagnostics a separate configure option\n\nThe commit adds the configure --enable-mem-check option which\nallows the MALLOC/FREE diagnostics to be enabled without\nthe --enable-debug option. This means that the mem-check\ndiagnostics can be used when running keepalived in it's normal mode\nwith forking children for vrrp and checkers.\n\nThe mem-check diagnostics are written to\n/tmp/Keepalived_{,vrrp,healthcheckers}_mem.PID.log\n\nThe --mem-check-log configure option enables command line option\n-L which also writes zalloc/free details to the syslog.\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/fa0a7725cb77506cef78fa17bc9cae47d48519a0"},{"sha":"69f3281267287c2543ce5aae69c8f00a5b82e5b0","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Fix compilation error on 32-bit systems with mem-check enabled\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/69f3281267287c2543ce5aae69c8f00a5b82e5b0"},{"sha":"1ed6272e545a824431a859e821f8f0bfd7c23eff","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Replace one zalloc() and one free() call with MALLOC() and FREE()\n\nThis ensures that the mem-check diagnostics cover all mallocs/frees.\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/1ed6272e545a824431a859e821f8f0bfd7c23eff"},{"sha":"ce710d06078848ab48d0977f595230aa15348ca5","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Fix report of malloc'd memory not being freed\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/ce710d06078848ab48d0977f595230aa15348ca5"},{"sha":"487893b8eaed1891aa4d796d6494150e9c8ed0c6","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Streamline read_line()\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/487893b8eaed1891aa4d796d6494150e9c8ed0c6"},{"sha":"7f3f010bb49729b294b9795a793d5b49dfd5f1a3","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Resolve a segfault when reloading with vmacs\n\nThe vrrp_t entries on the vrrp_data list have pointers to an\ninterface_t for each vrrp instance. When reloading, the\ninterface_t items where freed, but a pointer to the old list\nof vrrp_t items is held in old_vrrp_data. After the new\nconfiguration is processed, clear_diff_vrrp() is called. clear_diff_vrrp()\nuses the interface_t pointers from the old vrrp_t entries, but the\nmemory pointed to by the interface_t pointers has already been freed,\nand probably reallocated for a different use.\n\nThis commit delays freeing the old interface_t items until after\nclear_diff_vrrp() has completed, so the interface_t pointers remain valid.\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/7f3f010bb49729b294b9795a793d5b49dfd5f1a3"},{"sha":"47afc1f8e8941455c3973265e02be7d182980129","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Check valid interface pointer before calling reset_interface_parameters()\n\nBefore resetting the settings on the base interface of a vmac, check that\nthe interface_t pointer is valid.\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/47afc1f8e8941455c3973265e02be7d182980129"},{"sha":"e320d5cfe4290df206f2f25892bec807f2fd4b12","author":{"name":"Alexandre Cassen","email":"a96e03f77797e11a5e5d42263a7004ac5ab75270@gmail.com"},"message":"Merge pull request #370 from pqarmitage/segv\n\nResolve a segfault when reloading keepalived with vmacs","distinct":true,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/e320d5cfe4290df206f2f25892bec807f2fd4b12"},{"sha":"2f81655862cdce4f930fd8d2b2f18804b51388a8","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Fix new --mem-check-log option\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/2f81655862cdce4f930fd8d2b2f18804b51388a8"},{"sha":"5d536cef9c9c26ea6df549643c6721799ed99a84","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Don't write parent's memory logging into children's log file\n\nWhen running with mem-check output to files, the buffer from the\nparent process was also being written into the children's log\nfiles. The commit sets the CLOEXEC flag on the log files, and\nalso sets the log files to be line buffered.\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/5d536cef9c9c26ea6df549643c6721799ed99a84"},{"sha":"dcfb7b7335b335def9a0e15e984e30df09f27b41","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Fix segfault or infinite loop in thread_child_handler() after reloading\n\nWhen the checker and vrrp child processes start up, memory for a\nthread_master_t is malloc'd and saved in master. Subsequently,\nlaunch_scheduler() is called, and that sets the parameter to be passed\nto the SIGCHLD handler - thread_child_handler() to the value of master,\npointing to a thread_master_t.\n\nIf keepalived is signalled to reload, the child processes free all\nmalloc'd memory, and a new thread_master_t is malloc'd and saved in\nmaster. If this is not the same address as the previous thread_master_t,\nthen the value being passed to the SIGCHLD handler is a pointer to the\nold thread_master_t, whereas everything else is using the new thread_master_t.\nIf the memory used for the old thread_master_t is then returned in a subsequent\nmalloc() call, a subsequent SIGCHLD will invoke thread_child_handler() with\na pointer to memory that has now been overwritten for some other purpose, hence\ncausing either a segfault or an infinite loop.\n\nA further consequence is that new child processes will be added to the new\nthread_master_t, but when thread_child_hander() is called after a child\nterminates, it won't find the child since it is still looking at the old\nthread_master_t.\n\nThis commit modifies the behaviour of a reload by not releasing the old\nthread_master_t and then malloc'ing a new one, but rather it just reinitialises\nthe original thread_master_t and continues using it.\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/dcfb7b7335b335def9a0e15e984e30df09f27b41"},{"sha":"b0a7473b7d23e34562b34879bd80d1c2089c698d","author":{"name":"Quentin Armitage","email":"4455844f698e03f245f74167a78dcca671e74961@armitage.org.uk"},"message":"Remove base_iface from struct _vrrp_ - it wasn't used\n\nSigned-off-by: Quentin Armitage <quentin@armitage.org.uk>","distinct":false,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/b0a7473b7d23e34562b34879bd80d1c2089c698d"},{"sha":"bde660ec3671dd5e3aafc8fb09fa2f71cd381514","author":{"name":"Alexandre Cassen","email":"a96e03f77797e11a5e5d42263a7004ac5ab75270@gmail.com"},"message":"Merge pull request #371 from pqarmitage/segv\n\nResolve a segfault when reloading keepalived","distinct":true,"url":"https://api.github.com/repos/pqarmitage/keepalived/commits/bde660ec3671dd5e3aafc8fb09fa2f71cd381514"}]}
{"actor":{"display_login":"pqarmitage"}}