Your message dated Sat, 11 Jan 2025 11:03:08 +0000
with message-id <e1twzgm-009jy5...@coccia.debian.org>
and subject line Close 1091465
has caused the Debian Bug report #1091465,
regarding bookworm-pu: package espeak-ng/1.51+dfsg-10+deb12u2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1091465: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1091465
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: bookworm
X-Debbugs-Cc: espeak...@packages.debian.org
Control: affects -1 + src:espeak-ng
User: release.debian....@packages.debian.org
Usertags: pu

Hello,

I have uploaded the attached changes to bookworm-proposed-updates.

[ Reason ]
This fixes an issue with the espeak-ng+mbrola speech synthesis.

[ Impact ]
Currently, when a user uses the espeak-ng+mbrola speech synthesis (which
is of way better quality than espeak-ng), all utterances see their last
letter dropped. For instance, if the screen reader tries to read
"Hello", it's actually "Hell" that is spoken.

More generally, anything given as stdin to espeak-ng gets its last byte
removed.

[ Tests ]
This was tested manually.

[ Risks ]
The code is very trivial.

[ Checklist ]
  [X] *all* changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in (old)stable
  [X] the issue is verified as fixed in unstable

[ Changes ]
Historically in espeak 1.48, the code reading stdin was putting all
characters being read into the p_text buffer, including the eventual
EOF. p_text[ix-1] was removing it by luck. With espeak-ng 1.49, that
spurious EOF addition was fixed, but p_text[ix-1] was still set to \0,
thus now actually removing the last byte of stdin. The changes shifts
adding \0 to after the last byte. The loop above was already making sure
that this is within p_text's allocation. This also fixes the string
length passed to the espeak_Synth function.
diff -Nru espeak-ng-1.51+dfsg/debian/changelog 
espeak-ng-1.51+dfsg/debian/changelog
--- espeak-ng-1.51+dfsg/debian/changelog        2023-12-21 01:26:02.000000000 
+0100
+++ espeak-ng-1.51+dfsg/debian/changelog        2024-12-21 00:17:25.000000000 
+0100
@@ -1,3 +1,9 @@
+espeak-ng (1.51+dfsg-10+deb12u2) bookworm; urgency=medium
+
+  * patches/espeak-stdin: Fix dropping last byte of stdin input.
+
+ -- Samuel Thibault <sthiba...@debian.org>  Sat, 21 Dec 2024 00:17:25 +0100
+
 espeak-ng (1.51+dfsg-10+deb12u1) bookworm; urgency=medium
 
   * patches/CVE: Fix CVE-2023-49990, CVE-2023-49991, CVE-2023-49992,
diff -Nru espeak-ng-1.51+dfsg/debian/patches/espeak-stdin 
espeak-ng-1.51+dfsg/debian/patches/espeak-stdin
--- espeak-ng-1.51+dfsg/debian/patches/espeak-stdin     1970-01-01 
01:00:00.000000000 +0100
+++ espeak-ng-1.51+dfsg/debian/patches/espeak-stdin     2024-12-21 
00:17:25.000000000 +0100
@@ -0,0 +1,28 @@
+commit 33b6daf420710eca2f6b2dcdc8eb3f6d72e1d313
+Author: Samuel Thibault <samuel.thiba...@ens-lyon.org>
+Date:   Sat Dec 21 00:07:12 2024 +0100
+
+    Fix dropping last byte of stdin input
+    
+    This got broken with eaa0c9aa08350ce8a1343aed4c0a87c1cc329b0e ("Fix
+    truncated fgetc return value in main(espeak-ng.c). [Coverity]") which
+    rightfully stopped adding a bogus EOF at the end of the input, which
+    this line was probably dropping just by luck.
+    
+    Fixes brailcom/speechd#978
+
+diff --git a/src/espeak-ng.c b/src/espeak-ng.c
+index ee63da70..2ea3791a 100644
+--- a/src/espeak-ng.c
++++ b/src/espeak-ng.c
+@@ -762,8 +762,8 @@ int main(int argc, char **argv)
+                               }
+                       }
+                       if (ix > 0) {
+-                              p_text[ix-1] = 0;
+-                              espeak_Synth(p_text, ix+1, 0, POS_CHARACTER, 0, 
synth_flags, NULL, NULL);
++                              p_text[ix] = 0;
++                              espeak_Synth(p_text, ix, 0, POS_CHARACTER, 0, 
synth_flags, NULL, NULL);
+                       }
+               }
+ 
diff -Nru espeak-ng-1.51+dfsg/debian/patches/series 
espeak-ng-1.51+dfsg/debian/patches/series
--- espeak-ng-1.51+dfsg/debian/patches/series   2023-12-21 01:26:02.000000000 
+0100
+++ espeak-ng-1.51+dfsg/debian/patches/series   2024-12-21 00:17:25.000000000 
+0100
@@ -10,3 +10,4 @@
 long-build-path
 mb-fr
 CVE
+espeak-stdin

--- End Message ---
--- Begin Message ---
Version: 12.9
This update has been released as part of 12.9. Thank you for your contribution.

--- End Message ---

Reply via email to