[omniORB] Purify: Invalid pointer read/write

suzuki@wni.co.jp suzuki@wni.co.jp
Mon, 08 Feb 1999 23:25:37 +0900


Older Purify for Solaris have a bug that causes spurious
detection of IPR/IPW. The problem can be worked around, in our
environment (Purify 4.1/Solaris 2.6), by adding following options
to purify command.
  -mark-wrapped-stacks=yes
Existing instrumented library needs to be reinstrumented
with this option, too.
Hope this helps,

-shinji

> Message-Id: <36BEDC8A.C634680A@vs.dasa.de>
> Date: Mon, 08 Feb 1999 13:46:03 +0100
> From: Harald Hopfes <harald.hopfes@vs.dasa.de>
> Organization: DASA
> X-Mailer: Mozilla 4.5 [en] (WinNT; I)
> X-Accept-Language: de,en
> Mime-Version: 1.0
> To: omniorb-list@uk.research.att.com
> Subject: [omniORB] Purify: Invalid pointer read/write
> Content-Transfer-Encoding: 7bit
> Content-Length: 2235
> 
> Hello!
> 
> When applying Purify to our program, we get the Errors shown
> further down.
> We are using OmniORB 2.6.0. Could someone tell me if these errors
> are fixed in the omniORB 2.7.0 release?
> Could it be a bug in the template implementation of the Sun
> Compiler 4.2 ?
> 
> Thank you!
> 
> Harald
> 
> ****  Purify instrumented x_purify
>   * Purify 4.0 Solaris 2, Copyright (C) 1992-1996 Pure Software
> Inc. All rights reserved.
>   * For contact information type: "purify -help"
>   * For TTY output, use the option "-windows=no"
>   * Command-line: x_purify
>   * Options settings: -always-use-cache-dir -threads=yes \
>     -thread-report-at-exit=yes -max-threads=80 -g++=yes \
>     -cache-dir=~/purify_cache -purify \
>     -purify-home=~/purify-4.0-solaris2 \
>     -real_ild_linker=~/SC4.2/bin/ild -threads=yes \
>     -thread_stack_change=0x4000 -mt_safe_malloc=yes
>   * Purify checking enabled.
> 
> ****  Purify instrumented x_purify (pid 18509)  ****
> IPW: Invalid pointer write (129 times):
>   * This is occurring while in thread 18:
>  IOP::TaggedProfile::TaggedProfile(void) [objectRef.cc]
>  _VeCtOr_nEw_   [libC.so.5]
>  _vector_new_   [rtlib.o]
>  static _CORBA_Sequence<IOP::TaggedProfile>::allocbuf(unsigned
> long) [seqtemplates.h:186]
>  _CORBA_Sequence<IOP::TaggedProfile>::length(unsigned long)
> [seqtemplates.h:150]
>  _CORBA_Sequence<IOP::TaggedProfile>::operator
> <<=(NetBufferedStream&) [bufferedStream.h:735]
>   * Writing 4 bytes to 0xed00ec7c on the stack of thread 18.
>   * Address 0xed00ec7c is 68 bytes above frame pointer in
> function IOP::TaggedProfile::TaggedProfile(void).
> 
> ****  Purify instrumented x_purify (pid 18509)  ****
> IPR: Invalid pointer read (129 times):
>   * This is occurring while in thread 18:
>  IOP::TaggedProfile::TaggedProfile(void) [seqtemplates.h:186]
>  _VeCtOr_nEw_   [libC.so.5]
>  _vector_new_   [rtlib.o]
>  static _CORBA_Sequence<IOP::TaggedProfile>::allocbuf(unsigned
> long) [seqtemplates.h:186]
>  _CORBA_Sequence<IOP::TaggedProfile>::length(unsigned long)
> [seqtemplates.h:150]
>  _CORBA_Sequence<IOP::TaggedProfile>::operator
> <<=(NetBufferedStream&) [bufferedStream.h:735]
>   * Reading 4 bytes from 0xed00ec7c on the stack of thread 18.
>   * Address 0xed00ec7c is 68 bytes above frame pointer in
> function IOP::TaggedProfile::TaggedProfile(void).
> 
>