Source: scalpel
Version: 1.60-9
Severity: important
Tags: upstream patch
User: debian-gl...@lists.debian.org
Usertags: glibc2.34

Dear maintainer,

The autopkgtest of scalpel fails in sid on amd64 when that autopkgtest is
run with the binary packages of glibc from experimental. It passes when
run with only packages from sid. In tabular form:

                     pass            fail
glibc                from sid        2.34-0experimental5
scalpel              from sid        1.60-9
all others           from sid        from sid

Here is the relevant part of the test log:

autopkgtest [10:36:40]: test command1: scalpel -c debian/tests/scalpel.conf 
debian/tests/lua.img
autopkgtest [10:36:40]: test command1: [-----------------------

Opening target 
"/tmp/autopkgtest-lxc.93yq46zi/downtmp/build.fXk/src/debian/tests/lua.img"

bash: line 1:  1961 Segmentation fault      bash -ec 'scalpel -c 
debian/tests/scalpel.conf debian/tests/lua.img' 2> >(tee -a 
/tmp/autopkgtest-lxc.93yq46zi/downtmp/command1-stderr >&2) > >(tee -a 
/tmp/autopkgtest-lxc.93yq46zi/downtmp/command1-stdout)

The full test log is available there:
https://ci.debian.net/data/autopkgtest/unstable/amd64/s/scalpel/24235565/log.gz

After some debugging, I have found the issue to be a duplicate use of a
va_list without using va_copy. Please find attached a patch to fix that.

Regards
Aurelien
--- scalpel-1.60.orig/helpers.c
+++ scalpel-1.60/helpers.c
@@ -70,12 +70,14 @@ void setProgramName(char *s) {
 // write entry to both the screen and the audit file 
 void scalpelLog(struct scalpelState *state, char *format, ...) {
 
-  va_list argp;
+  va_list argp, argp2;
 
   va_start(argp,format);
+  va_copy(argp2, argp);
   vfprintf (stderr,format,argp);
-  vfprintf (state->auditFile,format,argp);
   va_end(argp);
+  vfprintf (state->auditFile,format,argp2);
+  va_end(argp2);
 }
 
 // determine if two characters match, with optional case 

Reply via email to