Fix bug in the api/step_io message writing logic.
If the write_labelled_message() returned -1 in _file_write(), the info->out_msg was not NULLed out thus in subsequent calls to _file_write() the same info->out_msg pointer could be enqueued again to the list. Besides the incorrect behavior of enqueing the same message more than once, api/step_io consuming clients like srun or sattach would eventually call client_io_handler_destroy(), which in turn would FREE_NULL_LIST() the free_outgoing list. The list destructor would free the pointer which was enqueued twice in the first occurrence, and in the next the process would segfault. Bug 13418
Please register or sign in to comment