From: Tomek Mrugalski Date: Mon, 16 Nov 2015 20:24:05 +0000 (+0100) Subject: [3682] Segfault fix in getAll(hwaddr, duid) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=398681ae32182ddd7f9bc970a7742eb1d34316d7;p=thirdparty%2Fkea.git [3682] Segfault fix in getAll(hwaddr, duid) --- diff --git a/src/lib/dhcpsrv/mysql_host_data_source.cc b/src/lib/dhcpsrv/mysql_host_data_source.cc index abeec6d8a4..fc17619723 100644 --- a/src/lib/dhcpsrv/mysql_host_data_source.cc +++ b/src/lib/dhcpsrv/mysql_host_data_source.cc @@ -699,7 +699,7 @@ MySqlHostDataSource::getAll(const HWAddrPtr& hwaddr, const DuidPtr& duid) const memset(inbind, 0, sizeof(inbind)); uint8_t dhcp_identifier_type = 0; - + long unsigned int length = 0; if (duid){ // DUID // set proper dhcp_identifier_type @@ -707,24 +707,24 @@ MySqlHostDataSource::getAll(const HWAddrPtr& hwaddr, const DuidPtr& duid) const inbind[1].buffer = reinterpret_cast(&dhcp_identifier_type); const vector& duid_vector = duid->getDuid(); - unsigned long duid_length = duid_vector.size(); + length = duid_vector.size(); inbind[0].buffer_type = MYSQL_TYPE_BLOB; inbind[0].buffer = reinterpret_cast (const_cast(&duid_vector[0])); - inbind[0].buffer_length = duid_length; - inbind[0].length = &duid_length; + inbind[0].buffer_length = length; + inbind[0].length = &length; } else if (hwaddr) { // HW Address dhcp_identifier_type = 0; // 0 = IDENT_HWADDR inbind[1].buffer = reinterpret_cast(&dhcp_identifier_type); const vector& hwaddr_vector = hwaddr->hwaddr_; - unsigned long hwaddr_length = hwaddr_vector.size(); + length = hwaddr_vector.size(); inbind[0].buffer_type = MYSQL_TYPE_BLOB; inbind[0].buffer = reinterpret_cast (const_cast(&hwaddr_vector[0])); - inbind[0].buffer_length = hwaddr_length; - inbind[0].length = &hwaddr_length; + inbind[0].buffer_length = length; + inbind[0].length = &length; } // dhcp_identifier_type