Hello!

The attachted patch fixes it for me.
What is missing is an appropriate error check in
source/libidb/libidb.cpp for grow() failing.

BYtE
Philipp
-- 
Philipp Matthias Hahn <[EMAIL PROTECTED]>
 GPG/PGP: 9A540E39 @ keyrings.debian.org
Index: source/libidb/libidb.cpp
===================================================================
--- source/libidb/libidb.cpp	(Revision 518)
+++ source/libidb/libidb.cpp	(Arbeitskopie)
@@ -120,6 +120,11 @@
 
 char * _BDATA::text()
 {
+	if( data_size == data_real)
+	{
+		grow( data_real + 1 );
+	}
+	data_buff[ data_size ] = '\0';
 	return ( char * ) data_buff;
 }
 
Index: source/iked/ike.peerid.cpp
===================================================================
--- source/iked/ike.peerid.cpp	(Revision 518)
+++ source/iked/ike.peerid.cpp	(Arbeitskopie)
@@ -91,7 +91,7 @@
 			if( ph1->tunnel->peer->iddata_l.size() )
 			{
 				ph1id.addr.s_addr =
-					inet_addr( ( char * ) ph1->tunnel->peer->iddata_l.buff() );
+					inet_addr( ph1->tunnel->peer->iddata_l.text() );
 			}
 			else
 			{
@@ -160,7 +160,7 @@
 			if( ph1->tunnel->peer->iddata_r.size() )
 			{
 				ph1id.addr.s_addr =
-					inet_addr( ( char * ) ph1->tunnel->peer->iddata_r.buff() );
+					inet_addr( ph1->tunnel->peer->iddata_r.text() );
 			}
 			else
 			{

Reply via email to