]> granicus.if.org Git - libass/commit
Fix line wrapping mode 0/3 bugs
authorGrigori Goronzy <greg@chown.ath.cx>
Tue, 4 Oct 2016 19:25:41 +0000 (21:25 +0200)
committerGrigori Goronzy <greg@chown.ath.cx>
Tue, 4 Oct 2016 22:38:35 +0000 (00:38 +0200)
commitf4f48950788b91c6a30029cc28a240b834713ea7
tree80037d66fbf7b4b8f96b12dc5ed9da06d81e9e14
parent08e754612019ed84d1db0d1fc4f5798248decd75
Fix line wrapping mode 0/3 bugs

This fixes two separate bugs:

a) Don't move a linebreak into the first symbol. This results in a empty
   line at the front, which does not help to equalize line lengths at all.
   Instead, merge line with the second one.
b) When moving a linebreak into a symbol that already is a break, the
   number of lines must be decremented. Otherwise, uninitialized memory
   is possibly used for later layout operations.

Found by fuzzer test case
id:000085,sig:11,src:003377+003350,op:splice,rep:8.

This might also affect and hopefully fix libass#229.

v2: change semantics according to review
libass/ass_render.c