aboutsummaryrefslogtreecommitdiff
path: root/ethosu/mlw_codec
diff options
context:
space:
mode:
authorFredrik Svedberg <fredrik.svedberg@arm.com>2021-05-20 11:13:00 +0200
committerFredrik Svedberg <fredrik.svedberg@arm.com>2021-05-20 14:35:07 +0200
commit0e938a3fd7c01b375aa755db08fd0c3f1021d0b5 (patch)
tree36398b9eb9ad4a29dd3035942f4c41faf8705dc8 /ethosu/mlw_codec
parentbf2eefc35d029f9d9174769716d2479ae00876f3 (diff)
downloadethos-u-vela-0e938a3fd7c01b375aa755db08fd0c3f1021d0b5.tar.gz
Fix mlw_codec build warnings
Fixed mlw_codec build warnings. Signed-off-by: Fredrik Svedberg <fredrik.svedberg@arm.com> Change-Id: I8ec8fb3b092cce0629c690677984549febf01adc
Diffstat (limited to 'ethosu/mlw_codec')
-rw-r--r--ethosu/mlw_codec/mlw_codecmodule.c11
-rw-r--r--ethosu/mlw_codec/mlw_encode.c4
2 files changed, 9 insertions, 6 deletions
diff --git a/ethosu/mlw_codec/mlw_codecmodule.c b/ethosu/mlw_codec/mlw_codecmodule.c
index 75ea8e96..b752a4e2 100644
--- a/ethosu/mlw_codec/mlw_codecmodule.c
+++ b/ethosu/mlw_codec/mlw_codecmodule.c
@@ -178,7 +178,7 @@ method_encode (PyObject *self, PyObject *args)
/* Unpack the length of the input integer list. */
Py_ssize_t input_length = PyObject_Length (input_list_object);
- if (input_length < 0) {
+ if (input_length < 0 || input_length > INT32_MAX) {
return NULL;
}
@@ -202,14 +202,14 @@ method_encode (PyObject *self, PyObject *args)
PyErr_SetString(PyExc_ValueError, "Input value out of bounds");
return NULL;
}
- input_buffer[i] = value;
+ input_buffer[i] = (int16_t)value;
}
if (PyErr_Occurred() != NULL) {
PyErr_SetString(PyExc_ValueError, "Invalid input");
return NULL;
}
- int output_length = mlw_encode(input_buffer, input_length, &output_buffer, verbose);
+ int output_length = mlw_encode(input_buffer, (int)input_length, &output_buffer, verbose);
PyObject *output_byte_array = PyByteArray_FromStringAndSize ((char *) output_buffer, output_length);
@@ -253,6 +253,9 @@ method_decode(PyObject *self, PyObject *args)
/* Unpack the input buffer and length from the bytearray object. */
uint8_t *input_buffer = (uint8_t *) PyByteArray_AsString(input_bytearray_object);
Py_ssize_t input_length = PyByteArray_Size(input_bytearray_object);
+ if (input_length < 0 || input_length > INT32_MAX) {
+ return NULL;
+ }
/* We don't know the output length required, we guess, but the guess
* will be too small, the mlw_decode call will do a resize (upwards)
@@ -262,7 +265,7 @@ method_decode(PyObject *self, PyObject *args)
if (output_buffer == NULL)
return PyErr_NoMemory();
- int output_length = mlw_decode (input_buffer, input_length, &output_buffer, verbose);
+ int output_length = mlw_decode (input_buffer, (int)input_length, &output_buffer, verbose);
/* Construct a new integer list and marshall the output buffer
* contents into the list. */
diff --git a/ethosu/mlw_codec/mlw_encode.c b/ethosu/mlw_codec/mlw_encode.c
index 3a030917..cac5e98b 100644
--- a/ethosu/mlw_codec/mlw_encode.c
+++ b/ethosu/mlw_codec/mlw_encode.c
@@ -1101,9 +1101,9 @@ int mlw_reorder_encode(
/* Then encode */
int output_length = 0;
- if (*padded_length > 0)
+ if (*padded_length > 0 && *padded_length <= INT32_MAX)
{
- output_length = mlw_encode(weights, *padded_length, outbuf, verbose);
+ output_length = mlw_encode(weights, (int)*padded_length, outbuf, verbose);
}
reorder_free(weights);