dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: thellstrom@vmware.com
Cc: dri-devel@lists.freedesktop.org
Subject: re: drm/vmwgfx: Initial DX support
Date: Thu, 28 Apr 2016 10:37:09 +0300	[thread overview]
Message-ID: <20160428073709.GA766@mwanda> (raw)

Hello Thomas Hellstrom,

The patch d80efd5cb3de: "drm/vmwgfx: Initial DX support" from Aug 10,
2015, leads to the following static checker warning:

	drivers/gpu/drm/vmwgfx/vmwgfx_so.c:335 vmw_view_add()
	error: buffer overflow 'vmw_view_define_sizes' 3 <= 3

drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
  2656  static int vmw_cmd_dx_view_define(struct vmw_private *dev_priv,
  2657                                    struct vmw_sw_context *sw_context,
  2658                                    SVGA3dCmdHeader *header)
  2659  {
  2660          struct vmw_resource_val_node *ctx_node = sw_context->dx_ctx_node;
  2661          struct vmw_resource_val_node *srf_node;
  2662          struct vmw_resource *res;
  2663          enum vmw_view_type view_type;
  2664          int ret;
  2665          /*
  2666           * This is based on the fact that all affected define commands have
  2667           * the same initial command body layout.
  2668           */
  2669          struct {
  2670                  SVGA3dCmdHeader header;
  2671                  uint32 defined_id;
  2672                  uint32 sid;
  2673          } *cmd;
  2674  
  2675          if (unlikely(ctx_node == NULL)) {
  2676                  DRM_ERROR("DX Context not set.\n");
  2677                  return -EINVAL;
  2678          }
  2679  
  2680          view_type = vmw_view_cmd_to_type(header->id);

vmw_view_cmd_to_type() returns 0-3.

  2681          cmd = container_of(header, typeof(*cmd), header);
  2682          ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface,
  2683                                  user_surface_converter,
  2684                                  &cmd->sid, &srf_node);
  2685          if (unlikely(ret != 0))
  2686                  return ret;
  2687  
  2688          res = vmw_context_cotable(ctx_node->res, vmw_view_cotables[view_type]);
                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
So we're one space beyond the end of the array, here and other places.

  2689          ret = vmw_cotable_notify(res, cmd->defined_id);
  2690          vmw_resource_unreference(&res);
  2691          if (unlikely(ret != 0))
  2692                  return ret;

regards,
dan carpenter
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

                 reply	other threads:[~2016-04-28  7:37 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160428073709.GA766@mwanda \
    --to=dan.carpenter@oracle.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=thellstrom@vmware.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox