summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllen Martin <amartin@nvidia.com>2012-12-07 10:28:41 -0800
committerAllen Martin <amartin@nvidia.com>2012-12-07 12:48:59 -0800
commit7bc30bf21aab6bb50bcf6636a049edba8a85c44a (patch)
treeaf31f00fabe29207f02ce60ab58e1dd806ab78af
parent8e815ee21d38e3197230d98ec08fa8309e1513a5 (diff)
downloadtegrarcm-7bc30bf21aab6bb50bcf6636a049edba8a85c44a.tar.gz
Check return value of rcm_get_msg_len()
Add a check on the return value of rcm_get_msg_len() so if it fails it isn't passed into usb_write(). Change-Id: I31aedf9f1dcde8aeed34b23a020e83dddd3179b6 Signed-off-by: Allen Martin <amartin@nvidia.com> Reviewed-on: http://git-master/r/167827 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Stephen Warren <swarren@nvidia.com>
-rw-r--r--src/main.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index 98563be..bc81cd2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -103,6 +103,7 @@ int main(int argc, char **argv)
uint8_t *miniloader;
uint32_t miniloader_size;
uint32_t miniloader_entry;
+ int msg_len;
static struct option long_options[] = {
[OPT_BCT] = {"bct", 1, 0, 0},
@@ -206,7 +207,10 @@ int main(int argc, char **argv)
rcm_create_msg(RCM_CMD_QUERY_RCM_VERSION, NULL, 0, NULL, 0, &msg_buff);
// write query version message to device
- ret = usb_write(usb, msg_buff, rcm_get_msg_len(msg_buff));
+ msg_len = rcm_get_msg_len(msg_buff);
+ if (msg_len == 0)
+ error(1, EINVAL, "unknown message length");
+ ret = usb_write(usb, msg_buff, msg_len);
if (ret)
error(1, errno, "write query version - USB transfer failure");
free(msg_buff);