Report error for out-of-range numerical inputs. Requested by brooks.

This commit is contained in:
theraven 2013-07-10 10:57:09 +00:00
parent 0f473d6553
commit e42a32794c

View File

@ -30,6 +30,8 @@
* $FreeBSD$
*/
#define __STDC_LIMIT_MACROS 1
#include "fdt.hh"
#include <algorithm>
@ -281,6 +283,12 @@ property::parse_cells(input_buffer &input)
valid = false;
return;
}
if ((val < 0) || (val > UINT32_MAX))
{
input.parse_error("Value out of range");
valid = false;
return;
}
push_big_endian(v.byte_data, (uint32_t)val);
input.next_token();
}