Fixed buffer free problem when sending between threads in the same process. Upstream-Status: Not Applicable Signed-off-by: Huimin She --- diff -rup a/liblinx/linx.c b/liblinx/linx.c --- a/liblinx/linx.c 2014-04-17 13:40:30.000000000 +0200 +++ b/liblinx/linx.c 2014-07-24 14:22:30.264648751 +0200 @@ -711,7 +711,10 @@ int linx_send(LINX * linx, union LINX_SI if (ret == 0) { sig_adm->sndrcv = sndrcv; } - adm_free_buf(linx, sig_adm); + if (ret != 1) { + /* Don't free signals sent back to itself, they are needed later! */ + adm_free_buf(linx, sig_adm); + } out: /* Take signal pointer from user. */ *sig = LINX_NIL;