fix need buffer length
This commit is contained in:
parent
f033dc0ed6
commit
2857814494
|
@ -2793,13 +2793,13 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
|||
{
|
||||
|
||||
std::string fw = get_firmware_version();
|
||||
if (*len < fw.size())
|
||||
if (*len < fw.size() + 1)
|
||||
{
|
||||
*len = fw.size();
|
||||
*len = fw.size() + 1;
|
||||
return SCANNER_ERR_INSUFFICIENT_MEMORY;
|
||||
}
|
||||
|
||||
if (data)
|
||||
if (data && fw.length())
|
||||
strcpy((char*)data, fw.c_str());
|
||||
|
||||
return SCANNER_ERR_OK;
|
||||
|
@ -2807,12 +2807,12 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
|||
else if(code == IO_CTRL_CODE_GET_SERIAL)
|
||||
{
|
||||
std::string ser = get_serial_num();
|
||||
if (*len < ser.size())
|
||||
if (*len < ser.size() + 1)
|
||||
{
|
||||
*len = ser.size();
|
||||
*len = ser.size() + 1;
|
||||
return SCANNER_ERR_INSUFFICIENT_MEMORY;
|
||||
}
|
||||
if(data)
|
||||
if(data && ser.length())
|
||||
strcpy((char*)data, ser.c_str());
|
||||
|
||||
return SCANNER_ERR_OK;
|
||||
|
@ -2820,12 +2820,12 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
|||
else if (code == IO_CTRL_CODE_GET_HARDWARE_VERSION)
|
||||
{
|
||||
std::string ip = get_ip();
|
||||
if (*len < ip.size())
|
||||
if (*len < ip.size() + 1)
|
||||
{
|
||||
*len = ip.size();
|
||||
*len = ip.size() + 1;
|
||||
return SCANNER_ERR_INSUFFICIENT_MEMORY;
|
||||
}
|
||||
if(data)
|
||||
if(data && ip.length())
|
||||
strcpy((char*)data, ip.c_str());
|
||||
|
||||
return SCANNER_ERR_OK;
|
||||
|
|
Loading…
Reference in New Issue