EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: dbGet() problem and exception vector table question
From: [email protected] (William Lupton)
To: [email protected]
Date: Wed, 13 Sep 95 15:48:25 HST
Dear all,

  We ran into a problem with dbGet() today. It's probably been there for
ages and is pretty benign _unless_ you happen (by mistake) to have an
interrupt vector at address zero (in which case your IOC may hang in the
same way as ours did)!

  The problem is that long *perr_status is initialized to NULL and then
the statement *perr_status = 0 is executed, which overwrites the first
four bytes of memory with zeroes. All other accesses to *perr_status are
protected with checks on whether perr_status is NULL (actually I think
that it can be removed since it always _is_ NULL).

  Overwriting low memory is always a potential problem if NULL pointers
are erroneously dereferenced. Does anyone move the exception vector
table away from location zero? With a previous system, we did this, set
the first 1024 bytes or so to zero, and had a task switch hook which
checked if any of those 1024 bytes were now non-zero. Of course, this
doesn't catch the above problem and it doesn't catch read access from
low memory.

  Really I should be grateful for the dbGet() bug, since it found our
problem for us (eventually)!

  William


Navigate by Date:
Prev: Analogue output simulation link SIOL Nick Rees
Next: Re: Analogue output simulation link SIOL Rozelle Wright
Index: 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Analogue output simulation link SIOL Nick Rees
Next: Re: dbGet() problem and exception vector table question Marty Kraimer
Index: 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·