MINOR: mux-h1: Be prepare to fail when EOM is added during trailers parsing

When trailers are parsed, we must add the corrresponsing HTX block and then we
must add the block end-of-message. But this last operation can failed because
there is not enough space the HTX message. This case was left aside till
now. Now, we stay in the state H1_MSG_TRAILERS with the warranty we will be able
to restart at the right stage.
diff --git a/src/mux_h1.c b/src/mux_h1.c
index 77251cb..534e14d 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -920,6 +920,7 @@
 				if (!chksz) {
 					if (!htx_add_endof(htx, HTX_BLK_EOD))
 						goto end;
+					h1s->flags |= H1S_F_HAVE_EOD;
 					h1m->state = H1_MSG_TRAILERS;
 				}
 				else
@@ -956,6 +957,11 @@
 			}
 
 			if (h1m->state == H1_MSG_TRAILERS) {
+				/* Trailers were alread parsed, only the EOM
+				 * need to be added */
+				if (h1s->flags & H1S_F_HAVE_TLR)
+					goto skip_tlr_parsing;
+
 				ret = h1_measure_trailers(buf, *ofs, *ofs + max);
 				if (ret > data_space)
 					ret = (htx_is_empty(htx) ? -1 : 0);
@@ -974,12 +980,12 @@
 
 				if (!htx_add_trailer(htx, ist2(b_peek(buf, *ofs), ret)))
 					goto end;
+				h1s->flags |= H1S_F_HAVE_TLR;
 				max -= ret;
 				*ofs += ret;
 				total += ret;
 
-				/* FIXME: if it fails here, this is a problem,
-				 * because there is no way to return here. */
+			  skip_tlr_parsing:
 				if (!htx_add_endof(htx, HTX_BLK_EOM))
 					goto end;
 				h1m->state = H1_MSG_DONE;