media: atomisp: use strscpy() instead of less secure variants
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 3 Jun 2020 06:12:14 +0000 (08:12 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 11 Jun 2020 17:13:10 +0000 (19:13 +0200)
Replace usages of strcpy(), strlcpy() and strncpy() in favor
of strscpy().

Suggested-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/pci/atomisp_file.c
drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
drivers/staging/media/atomisp/pci/atomisp_ioctl.c
drivers/staging/media/atomisp/pci/atomisp_tpg.c
drivers/staging/media/atomisp/pci/atomisp_trace_event.h
drivers/staging/media/atomisp/pci/atomisp_v4l2.c
drivers/staging/media/atomisp/pci/sh_css_sp.c
drivers/staging/media/atomisp/pci/sh_css_version.c

index fa92b5eba74024137e333cefaeddb739ee5157aa..e568ca99c45a50c00537474c270d366793aa1837 100644 (file)
@@ -219,7 +219,7 @@ int atomisp_file_input_init(struct atomisp_device *isp)
 
        v4l2_subdev_init(sd, &file_input_ops);
        sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
-       strcpy(sd->name, "file_input_subdev");
+       strscpy(sd->name, "file_input_subdev", sizeof(sd->name));
        v4l2_set_subdevdata(sd, file_dev);
 
        pads[0].flags = MEDIA_PAD_FL_SINK;
index e8f835c3bbae70463307bdeb8f0418f7a0ebd11a..5d2bfe2ea9717ad1ddb3ff14fe75b1430d86d45e 100644 (file)
@@ -936,7 +936,7 @@ static int gmin_get_hardcoded_var(struct gmin_cfg_var *varlist,
                if (vl > *out_len - 1)
                        return -ENOSPC;
 
-               strcpy(out, gv->val);
+               strscpy(out, gv->val, *out_len);
                *out_len = vl;
                return 0;
        }
index 15567623b51ba4e4138b6124a1e66561ac8f58ed..9404a678fa6fe4849abd9ce06555965926318e45 100644 (file)
@@ -547,8 +547,8 @@ static int atomisp_querycap(struct file *file, void *fh,
        struct video_device *vdev = video_devdata(file);
        struct atomisp_device *isp = video_get_drvdata(vdev);
 
-       strscpy(cap->driver, DRIVER, sizeof(cap->driver) - 1);
-       strscpy(cap->card, CARD, sizeof(cap->card) - 1);
+       strscpy(cap->driver, DRIVER, sizeof(cap->driver));
+       strscpy(cap->card, CARD, sizeof(cap->card));
        snprintf(cap->bus_info, sizeof(cap->bus_info), "PCI:%s",
                 pci_name(isp->pdev));
 
@@ -573,8 +573,8 @@ static int atomisp_enum_input(struct file *file, void *fh,
                return -EINVAL;
 
        memset(input, 0, sizeof(struct v4l2_input));
-       strncpy(input->name, isp->inputs[index].camera->name,
-               sizeof(input->name) - 1);
+       strscpy(input->name, isp->inputs[index].camera->name,
+               sizeof(input->name));
 
        /*
         * HACK: append actuator's name to sensor's
@@ -593,8 +593,8 @@ static int atomisp_enum_input(struct file *file, void *fh,
 
                if (max_size > 1) {
                        input->name[cur_len] = '+';
-                       strncpy(&input->name[cur_len + 1],
-                               motor->name, max_size - 1);
+                       strscpy(&input->name[cur_len + 1],
+                               motor->name, max_size);
                }
        }
 
index 9477ac5e22b908d8ee45a56a08b1ab8282747cb7..1def80bab180859d851a6000b2a4082b014b4ce1 100644 (file)
@@ -148,7 +148,7 @@ int atomisp_tpg_init(struct atomisp_device *isp)
        tpg->isp = isp;
        v4l2_subdev_init(sd, &tpg_ops);
        sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
-       strcpy(sd->name, "tpg_subdev");
+       strscpy(sd->name, "tpg_subdev", sizeof(sd->name));
        v4l2_set_subdevdata(sd, tpg);
 
        pads[0].flags = MEDIA_PAD_FL_SINK;
index 61f402a642d443e34bafcccff6a74a9ced086cc5..538d45e008b5e4aa1f7fdacdc46d7016d4043794 100644 (file)
@@ -44,7 +44,7 @@ TRACE_EVENT(camera_meminfo,
            ),
 
            TP_fast_assign(
-               strlcpy(__entry->name, name, 24);
+               strscpy(__entry->name, name, 24);
                __entry->uptr_size = uptr_size;
                __entry->counter = counter;
                __entry->sys_size = sys_size;
@@ -74,8 +74,8 @@ TRACE_EVENT(camera_debug,
            ),
 
            TP_fast_assign(
-               strlcpy(__entry->name, name, 24);
-               strlcpy(__entry->info, info, 24);
+               strscpy(__entry->name, name, 24);
+               strscpy(__entry->info, info, 24);
                __entry->line = line;
            ),
 
index 73bea6a7ebb6c6091f49a4afb19676a64faa89f1..29ea66f175c818e368b7002b8328ca24c7069514 100644 (file)
@@ -1206,7 +1206,7 @@ static int atomisp_register_entities(struct atomisp_device *isp)
 
        isp->media_dev.dev = isp->dev;
 
-       strlcpy(isp->media_dev.model, "Intel Atom ISP",
+       strscpy(isp->media_dev.model, "Intel Atom ISP",
                sizeof(isp->media_dev.model));
 
        media_device_init(&isp->media_dev);
index 756aad4a6e43879b0afe9e9342742ca93154150d..a40020ad699d105bd5610011825e46485bea6f07 100644 (file)
@@ -991,8 +991,7 @@ sh_css_sp_init_stage(struct ia_css_binary *binary,
 
        /* Make sure binary name is smaller than allowed string size */
        assert(strlen(binary_name) < SH_CSS_MAX_BINARY_NAME - 1);
-       strncpy(sh_css_isp_stage.binary_name, binary_name, SH_CSS_MAX_BINARY_NAME - 1);
-       sh_css_isp_stage.binary_name[SH_CSS_MAX_BINARY_NAME - 1] = 0;
+       strscpy(sh_css_isp_stage.binary_name, binary_name, SH_CSS_MAX_BINARY_NAME);
        sh_css_isp_stage.mem_initializers = *isp_mem_if;
 
        /*
index 3ef690d6f2cfc0b974a011f92a8ff8ed1570398f..fa6de61e4995233e6d9f9ba76a299267d192e8ee 100644 (file)
@@ -31,7 +31,7 @@ ia_css_get_version(char *version, int max_size) {
 
        if (max_size <= (int)strlen(css_version) + (int)strlen(sh_css_get_fw_version()) + 5)
                return -EINVAL;
-       strcpy(version, css_version);
+       strscpy(version, css_version, max_size);
        strcat(version, "FW:");
        strcat(version, sh_css_get_fw_version());
        strcat(version, "; ");