{
show_len = 0;
total_len = 0;
+ if ((cmd_head.data == NULL)
+ || (cmd_head.data_len >= DATA_LENGTH)
+ || (cmd_head.data_len >= (len - CMD_HEAD_LENGTH))) {
+ GTP_ERROR("copy_from_user data out of range.");
+ return -EINVAL;
+ }
+
memset(cmd_head.data, 0, cmd_head.data_len + 1);
memcpy(cmd_head.data, &buff[CMD_HEAD_LENGTH], cmd_head.data_len);