Package: lv2core
Version: 4.0-5
Severity: normal
Tags: patch
This is a bug against the SOURCE package from Debian Sid so my distribution
is irrelevant.
When building lv2core-4.0-5 from sid, I noticed a warning about snprintf
being guaranteed to overflow in write_text. The problem seems to be that the
local variable `escape' is declared as char [10], then used in snprintf as
if it had 11 characters.
Attached patch trivially fixes that.
-- System Information:
Debian Release: squeeze/sid
APT prefers lucid-updates
APT policy: (500, 'lucid-updates'), (500, 'lucid-security'), (500,
'lucid-proposed'), (500, 'lucid-backports'), (500, 'lucid')
Architecture: i386 (i686)
Kernel: Linux 2.6.31-11-rt (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
--- a/serd-0.1.0.c
+++ b/serd-0.1.0.c
@@ -2313,7 +2313,7 @@
write_text(SerdWriter writer, TextContext ctx,
const uint8_t* utf8, size_t n_bytes, uint8_t terminator)
{
- char escape[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+ char escape[15] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
for (size_t i = 0; i < n_bytes;) {
uint8_t in = utf8[i++];
switch (in) {