summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2018-10-08 12:55:57 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2018-10-08 13:10:14 +1000
commita020fda02fd0aca0c53b2368e6602bbd12002936 (patch)
tree16b8312657be981c7b175b30f6b44839a163c498
parent3f9022bdfe3d720ea27cb688512b4672d26a6dd6 (diff)
Ensure the device name is null-terminated
And expand the size to 18, because the stack array we copied this into is 18 bytes long. This covers us for up to 999 (kernel) v4l devices and that is definitely not a reason to use the "640k ought to be enough" meme. Found by - you guessed it - coverity! Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--src/v4l.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/v4l.c b/src/v4l.c
index 0f1058e..583c7b8 100644
--- a/src/v4l.c
+++ b/src/v4l.c
@@ -188,7 +188,7 @@ static const XF86AttributeRec FreqAttr =
static struct V4L_DEVICE {
int fd;
int useCount;
- char devName[16];
+ char devName[18];
} v4l_devices[MAX_V4L_DEVICES] = {
{ -1 },
{ -1 },
@@ -1157,7 +1157,8 @@ V4LInit(ScrnInfoPtr pScrn, XF86VideoAdaptorPtr **adaptors)
}
xf86Msg(X_INFO, "v4l: enabling overlay mode for %s.\n", dev);
- strncpy(V4L_NAME, dev, 16);
+ strncpy(V4L_NAME, dev, 18);
+ V4L_NAME[17] = '\0';
V4LBuildEncodings(pPPriv, fd);
if (NULL == pPPriv->enc)
return FALSE;