From c45890e15c144e1da39ed5eccbef3bc0de0a1226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Tue, 29 Nov 2011 15:50:54 +0100 Subject: [PATCH] Bug in FixedLeases::add_leases, fix potential pointer exception --- src/vnm/FixedLeases.cc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/vnm/FixedLeases.cc b/src/vnm/FixedLeases.cc index 83180c2a92..abfd653ef9 100644 --- a/src/vnm/FixedLeases.cc +++ b/src/vnm/FixedLeases.cc @@ -365,13 +365,17 @@ int FixedLeases::update_lease(Lease * lease) int FixedLeases::add_leases(vector& vector_leases, string& error_msg) { - const VectorAttribute * single_attr_lease; + const VectorAttribute * single_attr_lease = 0; int rc = -1; string _mac; string _ip; - single_attr_lease = dynamic_cast(vector_leases[0]); + if ( vector_leases.size() > 0 ) + { + single_attr_lease = + dynamic_cast(vector_leases[0]); + } if( single_attr_lease != 0 ) { @@ -400,11 +404,15 @@ int FixedLeases::add_leases(vector& vector_leases, int FixedLeases::remove_leases(vector& vector_leases, string& error_msg) { - const VectorAttribute * single_attr_lease; + const VectorAttribute * single_attr_lease = 0; int rc = -1; string _ip; - single_attr_lease = dynamic_cast(vector_leases[0]); + if ( vector_leases.size() > 0 ) + { + single_attr_lease = + dynamic_cast(vector_leases[0]); + } if( single_attr_lease != 0 ) {