Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > Detecting dangling memory references

Reply
Thread Tools

Detecting dangling memory references

 
 
Richard
Guest
Posts: n/a
 
      05-03-2004
My experience has always been that you're SOL when trying to safely
detect and stop references to dangling memory (non-null pointers to
free'ed blocks) at runtime (C99, Linux).

Maybe somebody clever has worked this out, though?

(Apologies to those who find the question off topic for CUP or CLC)
 
Reply With Quote
 
 
 
 
Richard
Guest
Posts: n/a
 
      05-03-2004
http://www.velocityreviews.com/forums/(E-Mail Removed) wrote...
> My experience has always been that you're SOL when trying to safely
> detect and stop references to dangling memory (non-null pointers to
> free'ed blocks) at runtime (C99, Linux).
>
> Maybe somebody clever has worked this out, though?
>
> (Apologies to those who find the question off topic for CUP or CLC)


Before somebody says "fix your code," the pointer is coming to me
from a library. Valgrind is claiming it's a non-null pointer to a
block that hasn't been allocated.


 
Reply With Quote
 
 
 
 
Karthik
Guest
Posts: n/a
 
      05-03-2004
Richard wrote:
> My experience has always been that you're SOL when trying to safely
> detect and stop references to dangling memory (non-null pointers to
> free'ed blocks) at runtime (C99, Linux).
>
> Maybe somebody clever has worked this out, though?
>
> (Apologies to those who find the question off topic for CUP or CLC)


There is electric fence that can help with this too !!


--
Karthik.
Humans please 'removeme_' for my real email.
 
Reply With Quote
 
joe@invalid.address
Guest
Posts: n/a
 
      05-03-2004
Richard <(E-Mail Removed)> writes:

> (E-Mail Removed) wrote...
> > My experience has always been that you're SOL when trying to safely
> > detect and stop references to dangling memory (non-null pointers to
> > free'ed blocks) at runtime (C99, Linux).
> >
> > Maybe somebody clever has worked this out, though?
> >
> > (Apologies to those who find the question off topic for CUP or
> > CLC)


You'll probably get complaints from clc, but it's certainly on topic
in cup.

> Before somebody says "fix your code," the pointer is coming to me
> from a library. Valgrind is claiming it's a non-null pointer to a
> block that hasn't been allocated.


Then you might want to send that output to the maintainers of the
library and suggest they look into it. What else can you do if you
don't control the code?

Depending on your platform there are probably other memory checkers
you could use. What OS are you doing this on?

Joe
--
"Surprise me"
- Yogi Berra when asked where he wanted to be buried.
 
Reply With Quote
 
CBFalconer
Guest
Posts: n/a
 
      05-04-2004
Richard wrote:
> (E-Mail Removed) wrote...
>
>> My experience has always been that you're SOL when trying to
>> safely detect and stop references to dangling memory (non-null
>> pointers to free'ed blocks) at runtime (C99, Linux).
>>
>> Maybe somebody clever has worked this out, though?
>>
>> (Apologies to those who find the question off topic for CUP or CLC)


Valid for cup I expect, and should be of interest here on clc.

>
> Before somebody says "fix your code," the pointer is coming to
> me from a library. Valgrind is claiming it's a non-null pointer
> to a block that hasn't been allocated.


You may want to look at my nmalloc for DJGPP. It is close to
standard C, but depends on various things (including pointer
arithmetic and sbrk) and the variadic macros are built around the
gcc (non-standard) technique. Those macros are only needed for
debuggery, but the variadic nature makes it impossible to just
define them out, thus you need gcc.

The point of this is that nmalloc has internal checks for
validity. Some of them are turned off by "#define SAVEMEMORY =
1". I originally had this enabled, which installed guard values
above and below the actual memory assignments, and with it
restored it should be possible to create an "int
_nmalloc_validptr(void *);" to provide close assurance of
validity, by checking that the block is assigned, with valid
forward and backwards pointers, and that the guards have not been
mangled.

If your existing code can be compiled under DJGPP you could try
most of this out with no changes. See the malldbg module in
nmalloc.

<http://cbfalconer.home.att.net/download/nmalloc.zip>

--
"I'm a war president. I make decisions here in the Oval Office
in foreign policy matters with war on my mind." - Bush.
"Churchill and Bush can both be considered wartime leaders, just
as Secretariat and Mr Ed were both horses." - James Rhodes.


 
Reply With Quote
 
Peter Nilsson
Guest
Posts: n/a
 
      05-04-2004
(E-Mail Removed)ess wrote in message news:<(E-Mail Removed)>...
> Richard <(E-Mail Removed)> writes:
> > (E-Mail Removed) wrote...
> > > My experience has always been that you're SOL when trying to safely
> > > detect and stop references to dangling memory (non-null pointers to
> > > free'ed blocks) at runtime (C99, Linux).


C99? Are you sure?

> > > Maybe somebody clever has worked this out, though?
> > >
> > > (Apologies to those who find the question off topic for CUP or
> > > CLC)

>
> You'll probably get complaints from clc, but it's certainly on topic
> in cup.


It's on topic in clc and the answer is 'yes, you're sol'. Answers from
cup involving implementation specific codings or third party libraries
will be off topic to clc though, so setting followups would be
appreciated.

--
Peter
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
cyclic references, shared_ptr, dangling pointer Jarek Blakarz C++ 2 11-06-2012 10:44 AM
Dangling references? Matthias Kaeppler C++ 6 10-11-2005 10:32 AM
dangling references? Tony Johansson C++ 6 04-07-2005 03:10 PM
DesignRules:331 Dangling RAMB16A output: (Help) rootz anabo VHDL 0 02-03-2005 04:04 PM
dangling reference Hans Van den Eynden Java 1 10-16-2004 09:20 AM



Advertisments