EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Bug in autosave 5.4
From: Ralph Lange <[email protected]>
To: Tim Mooney <[email protected]>
Cc: EPICS Tech-Talk <[email protected]>
Date: Tue, 23 Sep 2014 10:31:57 +0200
Hi Tim,

There's a bug in autosave 5.4, which can cause segfaults (or similar, depending on OS) when using the iocShell command 'set_pass1_restoreFile()'.

While being defined with two arguments, the iocShell integration layer calls the internal function with the pointer of a "third" argument structure. This is a stray pointer, which is likely to segfault the IOC when being dereferenced inside libautosave.

- Segfaults are immediate at IOC boot time after calling 'set_pass1_restoreFile()' - no sleeping danger.
- 'set_pass0_restoreFile()' is not affected.

The attached patch fixes the issue - please apply it upstream.

Cheers,
~Ralph

Index: autosave-5.4/asApp/src/dbrestore.c
===================================================================
--- autosave-5.4/asApp/src/dbrestore.c	(revision 49967)
+++ autosave-5.4/asApp/src/dbrestore.c	(working copy)
@@ -1444,7 +1444,7 @@
 STATIC const iocshFuncDef set_pass1_FuncDef = {"set_pass1_restoreFile",2,set_passN_Args};
 STATIC void set_pass1_CallFunc(const iocshArgBuf *args)
 {
-    set_pass1_restoreFile(args[0].sval, args[2].sval);
+    set_pass1_restoreFile(args[0].sval, args[1].sval);
 }
 
 /* void dbrestoreShow(void) */

Replies:
RE: Bug in autosave 5.4 Mooney, Tim M.

Navigate by Date:
Prev: RE: build shared library using static library Mark Rivers
Next: Record timestamp does not update (Debian Linux only) Michael Ritzert
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: build shared library using static library Mark Rivers
Next: RE: Bug in autosave 5.4 Mooney, Tim M.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·