Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- commit af8b38f03e0de179cf3efd07f9760512c877f142
- Author: Arnd Bergmann <arnd@arndb.de>
- Date: Tue Feb 27 22:25:46 2018 +0100
- gcc-8: work around stringop-truncation warnings
- Signed-off-by: Arnd Bergmann <arnd@arndb.de>
- diff --git a/arch/x86/platform/intel-mid/sfi.c b/arch/x86/platform/intel-mid/sfi.c
- index 7be1e1fe9ae3..fde6e8784a9b 100644
- --- a/arch/x86/platform/intel-mid/sfi.c
- +++ b/arch/x86/platform/intel-mid/sfi.c
- @@ -427,7 +427,7 @@ static void __init sfi_handle_sd_dev(struct sfi_device_table_entry *pentry,
- void *pdata;
- memset(&sd_info, 0, sizeof(sd_info));
- - strncpy(sd_info.name, pentry->name, SFI_NAME_LEN);
- + strncpy(sd_info.name, pentry->name, SFI_NAME_LEN - 1);
- sd_info.bus_num = pentry->host_num;
- sd_info.max_clk = pentry->max_freq;
- sd_info.addr = pentry->addr;
- diff --git a/block/partitions/ldm.c b/block/partitions/ldm.c
- index 2a365c756648..ab3ba7b5d282 100644
- --- a/block/partitions/ldm.c
- +++ b/block/partitions/ldm.c
- @@ -145,7 +145,7 @@ static bool ldm_parse_tocblock (const u8 *data, struct tocblock *toc)
- ldm_crit ("Cannot find TOCBLOCK, database may be corrupt.");
- return false;
- }
- - strncpy (toc->bitmap1_name, data + 0x24, sizeof (toc->bitmap1_name));
- + strncpy (toc->bitmap1_name, data + 0x24, sizeof (toc->bitmap1_name) - 1);
- toc->bitmap1_name[sizeof (toc->bitmap1_name) - 1] = 0;
- toc->bitmap1_start = get_unaligned_be64(data + 0x2E);
- toc->bitmap1_size = get_unaligned_be64(data + 0x36);
- @@ -156,7 +156,7 @@ static bool ldm_parse_tocblock (const u8 *data, struct tocblock *toc)
- TOC_BITMAP1, toc->bitmap1_name);
- return false;
- }
- - strncpy (toc->bitmap2_name, data + 0x46, sizeof (toc->bitmap2_name));
- + strncpy (toc->bitmap2_name, data + 0x46, sizeof (toc->bitmap2_name) - 1);
- toc->bitmap2_name[sizeof (toc->bitmap2_name) - 1] = 0;
- toc->bitmap2_start = get_unaligned_be64(data + 0x50);
- toc->bitmap2_size = get_unaligned_be64(data + 0x58);
- diff --git a/crypto/ablkcipher.c b/crypto/ablkcipher.c
- index d880a4897159..c34c19fbb894 100644
- --- a/crypto/ablkcipher.c
- +++ b/crypto/ablkcipher.c
- @@ -370,8 +370,8 @@ static int crypto_ablkcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
- {
- struct crypto_report_blkcipher rblkcipher;
- - strncpy(rblkcipher.type, "ablkcipher", sizeof(rblkcipher.type));
- - strncpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<default>",
- + strscpy(rblkcipher.type, "ablkcipher", sizeof(rblkcipher.type));
- + strscpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<default>",
- sizeof(rblkcipher.geniv));
- rblkcipher.blocksize = alg->cra_blocksize;
- @@ -444,8 +444,8 @@ static int crypto_givcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
- {
- struct crypto_report_blkcipher rblkcipher;
- - strncpy(rblkcipher.type, "givcipher", sizeof(rblkcipher.type));
- - strncpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<built-in>",
- + strscpy(rblkcipher.type, "givcipher", sizeof(rblkcipher.type));
- + strscpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<built-in>",
- sizeof(rblkcipher.geniv));
- rblkcipher.blocksize = alg->cra_blocksize;
- diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c
- index 01c0d4aa2563..e5838ff0612c 100644
- --- a/crypto/blkcipher.c
- +++ b/crypto/blkcipher.c
- @@ -509,8 +509,8 @@ static int crypto_blkcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
- {
- struct crypto_report_blkcipher rblkcipher;
- - strncpy(rblkcipher.type, "blkcipher", sizeof(rblkcipher.type));
- - strncpy(rblkcipher.geniv, alg->cra_blkcipher.geniv ?: "<default>",
- + strscpy(rblkcipher.type, "blkcipher", sizeof(rblkcipher.type));
- + strscpy(rblkcipher.geniv, alg->cra_blkcipher.geniv ?: "<default>",
- sizeof(rblkcipher.geniv));
- rblkcipher.blocksize = alg->cra_blocksize;
- diff --git a/drivers/auxdisplay/panel.c b/drivers/auxdisplay/panel.c
- index ea7869c0d7f9..8628e94cb3ac 100644
- --- a/drivers/auxdisplay/panel.c
- +++ b/drivers/auxdisplay/panel.c
- @@ -160,9 +160,9 @@ struct logical_input {
- } std;
- struct { /* valid when type == INPUT_TYPE_KBD */
- /* strings can be non null-terminated */
- - char press_str[sizeof(void *) + sizeof(int)];
- - char repeat_str[sizeof(void *) + sizeof(int)];
- - char release_str[sizeof(void *) + sizeof(int)];
- + char press_str[sizeof(void *) + sizeof(int)] __nonstring;
- + char repeat_str[sizeof(void *) + sizeof(int)] __nonstring;
- + char release_str[sizeof(void *) + sizeof(int)] __nonstring;
- } kbd;
- } u;
- };
- diff --git a/drivers/crypto/ccp/ccp-crypto-sha.c b/drivers/crypto/ccp/ccp-crypto-sha.c
- index 8b9b16d433f7..fcd5da6b09e8 100644
- --- a/drivers/crypto/ccp/ccp-crypto-sha.c
- +++ b/drivers/crypto/ccp/ccp-crypto-sha.c
- @@ -436,7 +436,7 @@ static int ccp_register_hmac_alg(struct list_head *head,
- *ccp_alg = *base_alg;
- INIT_LIST_HEAD(&ccp_alg->entry);
- - strncpy(ccp_alg->child_alg, def->name, CRYPTO_MAX_ALG_NAME);
- + strscpy(ccp_alg->child_alg, def->name, CRYPTO_MAX_ALG_NAME);
- alg = &ccp_alg->alg;
- alg->setkey = ccp_sha_setkey;
- diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
- index fe2af6aa88fc..98fa846236f0 100644
- --- a/drivers/devfreq/devfreq.c
- +++ b/drivers/devfreq/devfreq.c
- @@ -590,7 +590,7 @@ struct devfreq *devfreq_add_device(struct device *dev,
- devfreq->dev.class = devfreq_class;
- devfreq->dev.release = devfreq_dev_release;
- devfreq->profile = profile;
- - strncpy(devfreq->governor_name, governor_name, DEVFREQ_NAME_LEN);
- + strscpy(devfreq->governor_name, governor_name, DEVFREQ_NAME_LEN);
- devfreq->previous_freq = profile->initial_freq;
- devfreq->last_status.current_frequency = profile->initial_freq;
- devfreq->data = data;
- diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
- index b7254a29b34a..bb849c33dde1 100644
- --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
- +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
- @@ -2204,7 +2204,7 @@ static void fill_audio_info(struct audio_info *audio_info,
- cea_revision = drm_connector->display_info.cea_rev;
- - strncpy(audio_info->display_name,
- + strscpy(audio_info->display_name,
- edid_caps->display_name,
- AUDIO_INFO_DISPLAY_NAME_SIZE_IN_CHARS - 1);
- @@ -3273,7 +3273,7 @@ amdgpu_dm_create_common_mode(struct drm_encoder *encoder,
- mode->hdisplay = hdisplay;
- mode->vdisplay = vdisplay;
- mode->type &= ~DRM_MODE_TYPE_PREFERRED;
- - strncpy(mode->name, name, DRM_DISPLAY_MODE_LEN);
- + strscpy(mode->name, name, DRM_DISPLAY_MODE_LEN);
- return mode;
- diff --git a/drivers/gpu/drm/drm_property.c b/drivers/gpu/drm/drm_property.c
- index bae50e6b819d..e7acaa106db5 100644
- --- a/drivers/gpu/drm/drm_property.c
- +++ b/drivers/gpu/drm/drm_property.c
- @@ -99,10 +99,8 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
- property->num_values = num_values;
- INIT_LIST_HEAD(&property->enum_list);
- - if (name) {
- - strncpy(property->name, name, DRM_PROP_NAME_LEN);
- - property->name[DRM_PROP_NAME_LEN-1] = '\0';
- - }
- + if (name)
- + strscpy(property->name, name, DRM_PROP_NAME_LEN);
- list_add_tail(&property->head, &dev->mode_config.property_list);
- @@ -389,8 +387,7 @@ int drm_property_add_enum(struct drm_property *property, int index,
- if (!list_empty(&property->enum_list)) {
- list_for_each_entry(prop_enum, &property->enum_list, head) {
- if (prop_enum->value == value) {
- - strncpy(prop_enum->name, name, DRM_PROP_NAME_LEN);
- - prop_enum->name[DRM_PROP_NAME_LEN-1] = '\0';
- + strscpy(prop_enum->name, name, DRM_PROP_NAME_LEN);
- return 0;
- }
- }
- @@ -400,8 +397,7 @@ int drm_property_add_enum(struct drm_property *property, int index,
- if (!prop_enum)
- return -ENOMEM;
- - strncpy(prop_enum->name, name, DRM_PROP_NAME_LEN);
- - prop_enum->name[DRM_PROP_NAME_LEN-1] = '\0';
- + strscpy(prop_enum->name, name, DRM_PROP_NAME_LEN);
- prop_enum->value = value;
- property->values[index] = value;
- diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
- index 885fc3809f7f..51c6e96adb0b 100644
- --- a/drivers/gpu/drm/i915/intel_tv.c
- +++ b/drivers/gpu/drm/i915/intel_tv.c
- @@ -1347,7 +1347,7 @@ intel_tv_get_modes(struct drm_connector *connector)
- mode_ptr = drm_mode_create(connector->dev);
- if (!mode_ptr)
- continue;
- - strncpy(mode_ptr->name, input->name, DRM_DISPLAY_MODE_LEN);
- + strscpy(mode_ptr->name, input->name, DRM_DISPLAY_MODE_LEN);
- mode_ptr->name[DRM_DISPLAY_MODE_LEN - 1] = '\0';
- mode_ptr->hdisplay = hactive_s;
- diff --git a/drivers/gpu/drm/msm/msm_fence.c b/drivers/gpu/drm/msm/msm_fence.c
- index 349c12f670eb..52a576b763c1 100644
- --- a/drivers/gpu/drm/msm/msm_fence.c
- +++ b/drivers/gpu/drm/msm/msm_fence.c
- @@ -31,7 +31,7 @@ msm_fence_context_alloc(struct drm_device *dev, const char *name)
- return ERR_PTR(-ENOMEM);
- fctx->dev = dev;
- - strncpy(fctx->name, name, sizeof(fctx->name));
- + strscpy(fctx->name, name, sizeof(fctx->name));
- fctx->context = dma_fence_context_alloc(1);
- init_waitqueue_head(&fctx->event);
- spin_lock_init(&fctx->spinlock);
- diff --git a/drivers/gpu/drm/nouveau/include/nvif/cl0080.h b/drivers/gpu/drm/nouveau/include/nvif/cl0080.h
- index 2740278d226b..22c47a253b0a 100644
- --- a/drivers/gpu/drm/nouveau/include/nvif/cl0080.h
- +++ b/drivers/gpu/drm/nouveau/include/nvif/cl0080.h
- @@ -35,8 +35,8 @@ struct nv_device_info_v0 {
- __u8 pad06[2];
- __u64 ram_size;
- __u64 ram_user;
- - char chip[16];
- - char name[64];
- + char chip[16] __nonstring;
- + char name[64] __nonstring;
- };
- struct nv_device_time_v0 {
- diff --git a/drivers/gpu/drm/nouveau/include/nvif/if0000.h b/drivers/gpu/drm/nouveau/include/nvif/if0000.h
- index 30ecd31db5df..05c257c4b8e3 100644
- --- a/drivers/gpu/drm/nouveau/include/nvif/if0000.h
- +++ b/drivers/gpu/drm/nouveau/include/nvif/if0000.h
- @@ -6,7 +6,7 @@ struct nvif_client_v0 {
- __u8 version;
- __u8 pad01[7];
- __u64 device;
- - char name[32];
- + char name[32] __attribute__((nonstring));
- };
- #define NVIF_CLIENT_V0_DEVLIST 0x00
- diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c
- index b428c4678106..417286b0e6a3 100644
- --- a/drivers/gpu/drm/panel/panel-arm-versatile.c
- +++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
- @@ -264,7 +264,7 @@ static int versatile_panel_get_modes(struct drm_panel *panel)
- struct versatile_panel *vpanel = to_versatile_panel(panel);
- struct drm_display_mode *mode;
- - strncpy(connector->display_info.name, vpanel->panel_type->name,
- + strscpy(connector->display_info.name, vpanel->panel_type->name,
- DRM_DISPLAY_INFO_LEN);
- connector->display_info.width_mm = vpanel->panel_type->width_mm;
- connector->display_info.height_mm = vpanel->panel_type->height_mm;
- diff --git a/drivers/ide/qd65xx.c b/drivers/ide/qd65xx.c
- index a6fb6a894c7b..ad72676fd9e6 100644
- --- a/drivers/ide/qd65xx.c
- +++ b/drivers/ide/qd65xx.c
- @@ -157,7 +157,7 @@ static int qd_find_disk_type (ide_drive_t *drive,
- if (*m == 0)
- return 0;
- - strncpy(model, m, ATA_ID_PROD_LEN);
- + strscpy(model, m, ATA_ID_PROD_LEN);
- ide_fixstring(model, ATA_ID_PROD_LEN, 1); /* byte-swap */
- for (p = qd65xx_timing ; p->offset != -1 ; p++) {
- diff --git a/drivers/iio/pressure/st_pressure_i2c.c b/drivers/iio/pressure/st_pressure_i2c.c
- index fbb59059e942..619c20626cd4 100644
- --- a/drivers/iio/pressure/st_pressure_i2c.c
- +++ b/drivers/iio/pressure/st_pressure_i2c.c
- @@ -94,9 +94,8 @@ static int st_press_i2c_probe(struct i2c_client *client,
- if ((ret < 0) || (ret >= ST_PRESS_MAX))
- return -ENODEV;
- - strncpy(client->name, st_press_id_table[ret].name,
- + strscpy(client->name, st_press_id_table[ret].name,
- sizeof(client->name));
- - client->name[sizeof(client->name) - 1] = '\0';
- } else if (!id)
- return -ENODEV;
- diff --git a/drivers/infiniband/hw/hfi1/verbs.c b/drivers/infiniband/hw/hfi1/verbs.c
- index 471d55c50066..7d5036be36b1 100644
- --- a/drivers/infiniband/hw/hfi1/verbs.c
- +++ b/drivers/infiniband/hw/hfi1/verbs.c
- @@ -1883,7 +1883,7 @@ int hfi1_register_ib_device(struct hfi1_devdata *dd)
- ibdev->process_mad = hfi1_process_mad;
- ibdev->get_dev_fw_str = hfi1_get_dev_fw_str;
- - strncpy(ibdev->node_desc, init_utsname()->nodename,
- + strscpy(ibdev->node_desc, init_utsname()->nodename,
- sizeof(ibdev->node_desc));
- /*
- diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
- index 9904918589a4..93c6deaf94c2 100644
- --- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
- +++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
- @@ -1365,7 +1365,7 @@ static int ocrdma_mbx_get_ctrl_attribs(struct ocrdma_dev *dev)
- dev->hba_port_num = (hba_attribs->ptpnum_maxdoms_hbast_cv &
- OCRDMA_HBA_ATTRB_PTNUM_MASK)
- >> OCRDMA_HBA_ATTRB_PTNUM_SHIFT;
- - strncpy(dev->model_number,
- + strscpy(dev->model_number,
- hba_attribs->controller_model_number, 31);
- }
- dma_free_coherent(&dev->nic_info.pdev->dev, dma.size, dma.va, dma.pa);
- diff --git a/drivers/isdn/capi/capidrv.c b/drivers/isdn/capi/capidrv.c
- index 49fef08858c5..f3e5df9effdc 100644
- --- a/drivers/isdn/capi/capidrv.c
- +++ b/drivers/isdn/capi/capidrv.c
- @@ -1796,7 +1796,7 @@ static int capidrv_command(isdn_ctrl *c, capidrv_contr *card)
- switch (c->command) {
- case ISDN_CMD_DIAL: {
- - u8 calling[ISDN_MSNLEN + 3];
- + char calling[ISDN_MSNLEN + 3] __nonstring;
- u8 called[ISDN_MSNLEN + 2];
- if (debugmode)
- @@ -1824,8 +1824,8 @@ static int capidrv_command(isdn_ctrl *c, capidrv_contr *card)
- bchan->si1 = c->parm.setup.si1;
- bchan->si2 = c->parm.setup.si2;
- - strncpy(bchan->num, c->parm.setup.phone, sizeof(bchan->num));
- - strncpy(bchan->mynum, c->parm.setup.eazmsn, sizeof(bchan->mynum));
- + strscpy(bchan->num, c->parm.setup.phone, sizeof(bchan->num));
- + strscpy(bchan->mynum, c->parm.setup.eazmsn, sizeof(bchan->mynum));
- rc = FVteln2capi20(bchan->num, AdditionalInfo);
- isleasedline = (rc == 0);
- if (rc < 0)
- @@ -2013,7 +2013,7 @@ static int capidrv_command(isdn_ctrl *c, capidrv_contr *card)
- card->contrnr,
- c->parm.num, c->arg);
- bchan = &card->bchans[c->arg % card->nbchan];
- - strncpy(bchan->msn, c->parm.num, ISDN_MSNLEN);
- + strscpy(bchan->msn, c->parm.num, ISDN_MSNLEN);
- return 0;
- case ISDN_CMD_CLREAZ:
- @@ -2298,7 +2298,7 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp)
- if (profp->support1 & (1 << 8))
- card->interface.features |= ISDN_FEATURE_L2_MODEM;
- card->interface.hl_hdrlen = 22; /* len of DATA_B3_REQ */
- - strncpy(card->interface.id, id, sizeof(card->interface.id) - 1);
- + strscpy(card->interface.id, id, sizeof(card->interface.id));
- card->q931_read = card->q931_buf;
- diff --git a/drivers/isdn/i4l/isdn_net.c b/drivers/isdn/i4l/isdn_net.c
- index c138f66f2659..871bcfaa5d12 100644
- --- a/drivers/isdn/i4l/isdn_net.c
- +++ b/drivers/isdn/i4l/isdn_net.c
- @@ -2994,7 +2994,7 @@ isdn_net_getpeer(isdn_net_ioctl_phone *phone, isdn_net_ioctl_phone __user *peer)
- /* for pre-bound channels, we need this extra check */
- if (strncmp(dev->num[idx], "???", 3) == 0)
- return -ENOTCONN;
- - strncpy(phone->phone, dev->num[idx], ISDN_MSNLEN);
- + strscpy(phone->phone, dev->num[idx], ISDN_MSNLEN);
- phone->outgoing = USG_OUTGOING(dev->usage[idx]);
- if (copy_to_user(peer, phone, sizeof(*peer)))
- return -EFAULT;
- diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
- index 75c94bde287e..173b4b70c791 100644
- --- a/drivers/isdn/i4l/isdn_tty.c
- +++ b/drivers/isdn/i4l/isdn_tty.c
- @@ -877,7 +877,7 @@ isdn_tty_resume(char *id, modem_info *info, atemu *m)
- cmd.parm.cmsg.para[3] = 5; /* 16 bit 0x0005 Resume */
- cmd.parm.cmsg.para[4] = 0;
- cmd.parm.cmsg.para[5] = l;
- - strncpy(&cmd.parm.cmsg.para[6], id, l);
- + strncpy(&cmd.parm.cmsg.para[6], id, sizeof(cmd.parm.cmsg.para) - 6 - 1);
- cmd.command = CAPI_PUT_MESSAGE;
- info->dialing = 1;
- // strcpy(dev->num[i], n);
- @@ -2051,7 +2051,7 @@ isdn_tty_stat_callback(int i, isdn_ctrl *c)
- printk(KERN_DEBUG "tty_STAT_CAUSE ttyI%d\n", info->line);
- #endif
- /* Signal cause to tty-device */
- - strncpy(info->last_cause, c->parm.num, 5);
- + strscpy(info->last_cause, c->parm.num, 5);
- return 1;
- case ISDN_STAT_DISPLAY:
- #ifdef ISDN_TTY_STAT_DEBUG
- diff --git a/drivers/md/dm-cache-metadata.c b/drivers/md/dm-cache-metadata.c
- index 0d7212410e21..0fbe5c2bbc0c 100644
- --- a/drivers/md/dm-cache-metadata.c
- +++ b/drivers/md/dm-cache-metadata.c
- @@ -68,7 +68,7 @@ struct cache_disk_superblock {
- __le64 magic;
- __le32 version;
- - __u8 policy_name[CACHE_POLICY_NAME_SIZE];
- + char policy_name[CACHE_POLICY_NAME_SIZE] __nonstring;
- __le32 policy_hint_size;
- __u8 metadata_space_map_root[SPACE_MAP_ROOT_SIZE];
- @@ -128,7 +128,7 @@ struct dm_cache_metadata {
- bool changed:1;
- bool clean_when_opened:1;
- - char policy_name[CACHE_POLICY_NAME_SIZE];
- + char policy_name[CACHE_POLICY_NAME_SIZE] __nonstring;
- unsigned policy_version[CACHE_POLICY_VERSION_SIZE];
- size_t policy_hint_size;
- struct dm_cache_statistics stats;
- diff --git a/drivers/md/dm-log-userspace-base.c b/drivers/md/dm-log-userspace-base.c
- index 53b7b06d0aa8..3584bd787256 100644
- --- a/drivers/md/dm-log-userspace-base.c
- +++ b/drivers/md/dm-log-userspace-base.c
- @@ -43,7 +43,7 @@ struct log_c {
- uint32_t region_size;
- region_t region_count;
- uint64_t luid;
- - char uuid[DM_UUID_LEN];
- + char uuid[DM_UUID_LEN] __nonstring;
- /*
- * Mark and clear requests are held until a flush is issued
- diff --git a/drivers/media/dvb-frontends/dibx000_common.c b/drivers/media/dvb-frontends/dibx000_common.c
- index d981233e458f..dc80a8442e7a 100644
- --- a/drivers/media/dvb-frontends/dibx000_common.c
- +++ b/drivers/media/dvb-frontends/dibx000_common.c
- @@ -424,7 +424,7 @@ static int i2c_adapter_init(struct i2c_adapter *i2c_adap,
- struct i2c_algorithm *algo, const char *name,
- struct dibx000_i2c_master *mst)
- {
- - strncpy(i2c_adap->name, name, sizeof(i2c_adap->name));
- + strscpy(i2c_adap->name, name, sizeof(i2c_adap->name));
- i2c_adap->algo = algo;
- i2c_adap->algo_data = NULL;
- i2c_set_adapdata(i2c_adap, mst);
- diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
- index e79f72b8b858..329d215c7df1 100644
- --- a/drivers/media/media-device.c
- +++ b/drivers/media/media-device.c
- @@ -255,7 +255,7 @@ static long media_device_get_topology(struct media_device *mdev,
- memset(&kentity, 0, sizeof(kentity));
- kentity.id = entity->graph_obj.id;
- kentity.function = entity->function;
- - strncpy(kentity.name, entity->name,
- + strscpy(kentity.name, entity->name,
- sizeof(kentity.name));
- if (copy_to_user(uentity, &kentity, sizeof(kentity)))
- diff --git a/drivers/media/pci/zoran/zoran_driver.c b/drivers/media/pci/zoran/zoran_driver.c
- index 8d4e7d930a66..a2982c1543cc 100644
- --- a/drivers/media/pci/zoran/zoran_driver.c
- +++ b/drivers/media/pci/zoran/zoran_driver.c
- @@ -1509,8 +1509,8 @@ static int zoran_querycap(struct file *file, void *__fh, struct v4l2_capability
- struct zoran_fh *fh = __fh;
- struct zoran *zr = fh->zr;
- - strncpy(cap->card, ZR_DEVNAME(zr), sizeof(cap->card)-1);
- - strncpy(cap->driver, "zoran", sizeof(cap->driver)-1);
- + strscpy(cap->card, ZR_DEVNAME(zr), sizeof(cap->card));
- + strscpy(cap->driver, "zoran", sizeof(cap->driver));
- snprintf(cap->bus_info, sizeof(cap->bus_info), "PCI:%s",
- pci_name(zr->pci_dev));
- cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE |
- @@ -1525,8 +1525,8 @@ static int zoran_enum_fmt(struct zoran *zr, struct v4l2_fmtdesc *fmt, int flag)
- for (num = i = 0; i < NUM_FORMATS; i++) {
- if (zoran_formats[i].flags & flag && num++ == fmt->index) {
- - strncpy(fmt->description, zoran_formats[i].name,
- - sizeof(fmt->description) - 1);
- + strscpy(fmt->description, zoran_formats[i].name,
- + sizeof(fmt->description) );
- /* fmt struct pre-zeroed, so adding '\0' not needed */
- fmt->pixelformat = zoran_formats[i].fourcc;
- if (zoran_formats[i].flags & ZORAN_FORMAT_COMPRESSED)
- @@ -2300,8 +2300,8 @@ static int zoran_enum_input(struct file *file, void *__fh,
- if (inp->index >= zr->card.inputs)
- return -EINVAL;
- - strncpy(inp->name, zr->card.input[inp->index].name,
- - sizeof(inp->name) - 1);
- + strscpy(inp->name, zr->card.input[inp->index].name,
- + sizeof(inp->name));
- inp->type = V4L2_INPUT_TYPE_CAMERA;
- inp->std = V4L2_STD_ALL;
- @@ -2343,7 +2343,7 @@ static int zoran_enum_output(struct file *file, void *__fh,
- outp->index = 0;
- outp->type = V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY;
- - strncpy(outp->name, "Autodetect", sizeof(outp->name)-1);
- + strscpy(outp->name, "Autodetect", sizeof(outp->name));
- return 0;
- }
- diff --git a/drivers/media/platform/am437x/am437x-vpfe.c b/drivers/media/platform/am437x/am437x-vpfe.c
- index 601ae6487617..a4645b83a523 100644
- --- a/drivers/media/platform/am437x/am437x-vpfe.c
- +++ b/drivers/media/platform/am437x/am437x-vpfe.c
- @@ -1540,7 +1540,7 @@ static int vpfe_enum_fmt(struct file *file, void *priv,
- if (!fmt)
- return -EINVAL;
- - strncpy(f->description, fmt->name, sizeof(f->description) - 1);
- + strscpy(f->description, fmt->name, sizeof(f->description));
- f->pixelformat = fmt->fourcc;
- f->type = vpfe->fmt.type;
- diff --git a/drivers/media/platform/davinci/vpfe_capture.c b/drivers/media/platform/davinci/vpfe_capture.c
- index 6f44abf7fa31..201202e4a8ca 100644
- --- a/drivers/media/platform/davinci/vpfe_capture.c
- +++ b/drivers/media/platform/davinci/vpfe_capture.c
- @@ -1759,7 +1759,7 @@ static int vpfe_probe(struct platform_device *pdev)
- mutex_lock(&ccdc_lock);
- - strncpy(ccdc_cfg->name, vpfe_cfg->ccdc, 32);
- + strscpy(ccdc_cfg->name, vpfe_cfg->ccdc, 32);
- /* Get VINT0 irq resource */
- res1 = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
- if (!res1) {
- diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
- index 8937b0af7cb3..4f3658e093b6 100644
- --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
- +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
- @@ -265,8 +265,8 @@ static int vidioc_querycap(struct file *file, void *priv,
- {
- struct s5p_mfc_dev *dev = video_drvdata(file);
- - strncpy(cap->driver, S5P_MFC_NAME, sizeof(cap->driver) - 1);
- - strncpy(cap->card, dev->vfd_dec->name, sizeof(cap->card) - 1);
- + strscpy(cap->driver, S5P_MFC_NAME, sizeof(cap->driver));
- + strscpy(cap->card, dev->vfd_dec->name, sizeof(cap->card));
- snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
- dev_name(&dev->plat_dev->dev));
- /*
- diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
- index 0d5d465561be..c137e6aa09d9 100644
- --- a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
- +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
- @@ -943,8 +943,8 @@ static int vidioc_querycap(struct file *file, void *priv,
- {
- struct s5p_mfc_dev *dev = video_drvdata(file);
- - strncpy(cap->driver, S5P_MFC_NAME, sizeof(cap->driver) - 1);
- - strncpy(cap->card, dev->vfd_enc->name, sizeof(cap->card) - 1);
- + strscpy(cap->driver, S5P_MFC_NAME, sizeof(cap->driver));
- + strscpy(cap->card, dev->vfd_enc->name, sizeof(cap->card));
- snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
- dev_name(&dev->plat_dev->dev));
- /*
- diff --git a/drivers/media/platform/soc_camera/soc_camera_platform.c b/drivers/media/platform/soc_camera/soc_camera_platform.c
- index cb4986b8f798..5442bfd91f91 100644
- --- a/drivers/media/platform/soc_camera/soc_camera_platform.c
- +++ b/drivers/media/platform/soc_camera/soc_camera_platform.c
- @@ -159,7 +159,7 @@ static int soc_camera_platform_probe(struct platform_device *pdev)
- v4l2_subdev_init(&priv->subdev, &platform_subdev_ops);
- v4l2_set_subdevdata(&priv->subdev, p);
- - strncpy(priv->subdev.name, dev_name(&pdev->dev), V4L2_SUBDEV_NAME_SIZE);
- + strscpy(priv->subdev.name, dev_name(&pdev->dev), V4L2_SUBDEV_NAME_SIZE);
- return v4l2_device_register_subdev(&ici->v4l2_dev, &priv->subdev);
- }
- diff --git a/drivers/media/usb/go7007/go7007-v4l2.c b/drivers/media/usb/go7007/go7007-v4l2.c
- index 98cd57eaf36a..8374e4b60d55 100644
- --- a/drivers/media/usb/go7007/go7007-v4l2.c
- +++ b/drivers/media/usb/go7007/go7007-v4l2.c
- @@ -634,7 +634,7 @@ static int vidioc_enum_input(struct file *file, void *priv,
- if (inp->index >= go->board_info->num_inputs)
- return -EINVAL;
- - strncpy(inp->name, go->board_info->inputs[inp->index].name,
- + strscpy(inp->name, go->board_info->inputs[inp->index].name,
- sizeof(inp->name));
- /* If this board has a tuner, it will be the first input */
- diff --git a/drivers/media/usb/hdpvr/hdpvr-video.c b/drivers/media/usb/hdpvr/hdpvr-video.c
- index 77c3d331ff31..9ab071f8993d 100644
- --- a/drivers/media/usb/hdpvr/hdpvr-video.c
- +++ b/drivers/media/usb/hdpvr/hdpvr-video.c
- @@ -873,7 +873,7 @@ static int vidioc_g_audio(struct file *file, void *private_data,
- audio->index = dev->options.audio_input;
- audio->capability = V4L2_AUDCAP_STEREO;
- - strncpy(audio->name, audio_iname[audio->index], sizeof(audio->name));
- + strscpy(audio->name, audio_iname[audio->index], sizeof(audio->name));
- audio->name[sizeof(audio->name) - 1] = '\0';
- return 0;
- }
- diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c
- index 5970b8def548..14e49ebaace2 100644
- --- a/drivers/mfd/db8500-prcmu.c
- +++ b/drivers/mfd/db8500-prcmu.c
- @@ -2685,7 +2685,7 @@ static void dbx500_fw_version_init(struct platform_device *pdev,
- fw_info.version.api_version = (version >> 8) & 0xFF;
- fw_info.version.func_version = (version >> 16) & 0xFF;
- fw_info.version.errata = (version >> 24) & 0xFF;
- - strncpy(fw_info.version.project_name,
- + strscpy(fw_info.version.project_name,
- fw_project_name(fw_info.version.project),
- PRCMU_FW_PROJECT_NAME_LEN);
- fw_info.valid = true;
- diff --git a/drivers/misc/c2port/core.c b/drivers/misc/c2port/core.c
- index 1c5b7aec13d4..9e9e56d42efe 100644
- --- a/drivers/misc/c2port/core.c
- +++ b/drivers/misc/c2port/core.c
- @@ -926,7 +926,7 @@ struct c2port_device *c2port_device_register(char *name,
- }
- dev_set_drvdata(c2dev->dev, c2dev);
- - strncpy(c2dev->name, name, C2PORT_NAME_LEN);
- + strlcpy(c2dev->name, name, C2PORT_NAME_LEN);
- c2dev->ops = ops;
- mutex_init(&c2dev->mutex);
- diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c
- index 58c705f24f96..f1c70cfb8600 100644
- --- a/drivers/net/bonding/bond_options.c
- +++ b/drivers/net/bonding/bond_options.c
- @@ -1152,8 +1152,7 @@ static int bond_option_primary_set(struct bonding *bond,
- RCU_INIT_POINTER(bond->primary_slave, NULL);
- bond_select_active_slave(bond);
- }
- - strncpy(bond->params.primary, primary, IFNAMSIZ);
- - bond->params.primary[IFNAMSIZ - 1] = 0;
- + strscpy(bond->params.primary, primary, IFNAMSIZ);
- netdev_dbg(bond->dev, "Recording %s as primary, but it has not been enslaved to %s yet\n",
- primary, bond->dev->name);
- diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c
- index 6975150d144e..b66e1f0c6938 100644
- --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
- +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
- @@ -2243,11 +2243,11 @@ static void ena_config_host_info(struct ena_com_dev *ena_dev)
- host_info->os_type = ENA_ADMIN_OS_LINUX;
- host_info->kernel_ver = LINUX_VERSION_CODE;
- - strncpy(host_info->kernel_ver_str, utsname()->version,
- - sizeof(host_info->kernel_ver_str) - 1);
- + strscpy(host_info->kernel_ver_str, utsname()->version,
- + sizeof(host_info->kernel_ver_str));
- host_info->os_dist = 0;
- - strncpy(host_info->os_dist_str, utsname()->release,
- - sizeof(host_info->os_dist_str) - 1);
- + strscpy(host_info->os_dist_str, utsname()->release,
- + sizeof(host_info->os_dist_str));
- host_info->driver_version =
- (DRV_MODULE_VER_MAJOR) |
- (DRV_MODULE_VER_MINOR << ENA_ADMIN_HOST_INFO_MINOR_SHIFT) |
- diff --git a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
- index a63ddf07f168..49086501024e 100644
- --- a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
- +++ b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
- @@ -279,9 +279,9 @@ lio_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
- memset(drvinfo, 0, sizeof(struct ethtool_drvinfo));
- strcpy(drvinfo->driver, "liquidio");
- strcpy(drvinfo->version, LIQUIDIO_VERSION);
- - strncpy(drvinfo->fw_version, oct->fw_info.liquidio_firmware_version,
- + strscpy(drvinfo->fw_version, oct->fw_info.liquidio_firmware_version,
- ETHTOOL_FWVERS_LEN);
- - strncpy(drvinfo->bus_info, pci_name(oct->pci_dev), 32);
- + strscpy(drvinfo->bus_info, pci_name(oct->pci_dev), 32);
- }
- static void
- @@ -296,9 +296,9 @@ lio_get_vf_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
- memset(drvinfo, 0, sizeof(struct ethtool_drvinfo));
- strcpy(drvinfo->driver, "liquidio_vf");
- strcpy(drvinfo->version, LIQUIDIO_VERSION);
- - strncpy(drvinfo->fw_version, oct->fw_info.liquidio_firmware_version,
- + strscpy(drvinfo->fw_version, oct->fw_info.liquidio_firmware_version,
- ETHTOOL_FWVERS_LEN);
- - strncpy(drvinfo->bus_info, pci_name(oct->pci_dev), 32);
- + strscpy(drvinfo->bus_info, pci_name(oct->pci_dev), 32);
- }
- static int
- diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_device.c b/drivers/net/ethernet/cavium/liquidio/octeon_device.c
- index f38abf626412..b2ab309dac55 100644
- --- a/drivers/net/ethernet/cavium/liquidio/octeon_device.c
- +++ b/drivers/net/ethernet/cavium/liquidio/octeon_device.c
- @@ -1212,10 +1212,10 @@ int octeon_core_drv_init(struct octeon_recv_info *recv_info, void *buf)
- goto core_drv_init_err;
- }
- - strncpy(app_name,
- + strscpy(app_name,
- get_oct_app_string(
- (u32)recv_pkt->rh.r_core_drv_init.app_mode),
- - sizeof(app_name) - 1);
- + sizeof(app_name));
- oct->app_mode = (u32)recv_pkt->rh.r_core_drv_init.app_mode;
- if (recv_pkt->rh.r_core_drv_init.app_mode == CVM_DRV_NIC_APP) {
- oct->fw_info.max_nic_ports =
- @@ -1252,8 +1252,8 @@ int octeon_core_drv_init(struct octeon_recv_info *recv_info, void *buf)
- memcpy(cs, get_rbd(
- recv_pkt->buffer_ptr[0]) + OCT_DROQ_INFO_SIZE, sizeof(*cs));
- - strncpy(oct->boardinfo.name, cs->boardname, OCT_BOARD_NAME);
- - strncpy(oct->boardinfo.serial_number, cs->board_serial_number,
- + strscpy(oct->boardinfo.name, cs->boardname, OCT_BOARD_NAME);
- + strscpy(oct->boardinfo.serial_number, cs->board_serial_number,
- OCT_SERIAL_LEN);
- octeon_swap_8B_data((u64 *)cs, (sizeof(*cs) >> 3));
- diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
- index 7ea7f8a4aa2a..73fdd75872e5 100644
- --- a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
- +++ b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
- @@ -638,18 +638,15 @@ static void hns_nic_get_drvinfo(struct net_device *net_dev,
- {
- struct hns_nic_priv *priv = netdev_priv(net_dev);
- - strncpy(drvinfo->version, HNAE_DRIVER_VERSION,
- + strscpy(drvinfo->version, HNAE_DRIVER_VERSION,
- sizeof(drvinfo->version));
- - drvinfo->version[sizeof(drvinfo->version) - 1] = '\0';
- - strncpy(drvinfo->driver, HNAE_DRIVER_NAME, sizeof(drvinfo->driver));
- - drvinfo->driver[sizeof(drvinfo->driver) - 1] = '\0';
- + strscpy(drvinfo->driver, HNAE_DRIVER_NAME, sizeof(drvinfo->driver));
- - strncpy(drvinfo->bus_info, priv->dev->bus->name,
- + strscpy(drvinfo->bus_info, priv->dev->bus->name,
- sizeof(drvinfo->bus_info));
- - drvinfo->bus_info[ETHTOOL_BUSINFO_LEN - 1] = '\0';
- - strncpy(drvinfo->fw_version, "N/A", ETHTOOL_FWVERS_LEN);
- + strscpy(drvinfo->fw_version, "N/A", ETHTOOL_FWVERS_LEN);
- drvinfo->eedump_len = 0;
- }
- diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
- index b034c7f24eda..56cb47a29751 100644
- --- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
- +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
- @@ -511,17 +511,14 @@ static void hns3_get_drvinfo(struct net_device *netdev,
- struct hns3_nic_priv *priv = netdev_priv(netdev);
- struct hnae3_handle *h = priv->ae_handle;
- - strncpy(drvinfo->version, hns3_driver_version,
- + strscpy(drvinfo->version, hns3_driver_version,
- sizeof(drvinfo->version));
- - drvinfo->version[sizeof(drvinfo->version) - 1] = '\0';
- - strncpy(drvinfo->driver, h->pdev->driver->name,
- + strscpy(drvinfo->driver, h->pdev->driver->name,
- sizeof(drvinfo->driver));
- - drvinfo->driver[sizeof(drvinfo->driver) - 1] = '\0';
- - strncpy(drvinfo->bus_info, pci_name(h->pdev),
- + strscpy(drvinfo->bus_info, pci_name(h->pdev),
- sizeof(drvinfo->bus_info));
- - drvinfo->bus_info[ETHTOOL_BUSINFO_LEN - 1] = '\0';
- snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), "0x%08x",
- priv->ae_handle->ae_algo->ops->get_fw_version(h));
- diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
- index 97381238eb7c..a1b6dd6a5807 100644
- --- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c
- +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
- @@ -699,7 +699,7 @@ static long i40e_ptp_create_clock(struct i40e_pf *pf)
- if (!IS_ERR_OR_NULL(pf->ptp_clock))
- return 0;
- - strncpy(pf->ptp_caps.name, i40e_driver_name, sizeof(pf->ptp_caps.name));
- + strscpy(pf->ptp_caps.name, i40e_driver_name, sizeof(pf->ptp_caps.name));
- pf->ptp_caps.owner = THIS_MODULE;
- pf->ptp_caps.max_adj = 999999999;
- pf->ptp_caps.n_ext_ts = 0;
- diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
- index 9fe85300e7b6..c4aa5edd4614 100644
- --- a/drivers/net/ethernet/marvell/sky2.c
- +++ b/drivers/net/ethernet/marvell/sky2.c
- @@ -4925,7 +4925,7 @@ static const char *sky2_name(u8 chipid, char *buf, int sz)
- };
- if (chipid >= CHIP_ID_YUKON_XL && chipid <= CHIP_ID_YUKON_OP_2)
- - strncpy(buf, name[chipid - CHIP_ID_YUKON_XL], sz);
- + strscpy(buf, name[chipid - CHIP_ID_YUKON_XL], sz);
- else
- snprintf(buf, sz, "(chip %#x)", chipid);
- return buf;
- diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c
- index 7e14725055c7..03c74f5ecb51 100644
- --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c
- +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c
- @@ -105,7 +105,7 @@ static int nfp_cpp_resource_find(struct nfp_cpp *cpp, struct nfp_resource *res)
- cpp_id = NFP_CPP_ID(NFP_RESOURCE_TBL_TARGET, 3, 0); /* Atomic read */
- - strncpy(name_pad, res->name, sizeof(name_pad));
- + strscpy(name_pad, res->name, sizeof(name_pad));
- /* Search for a matching entry */
- if (!memcmp(name_pad, NFP_RESOURCE_TBL_NAME "\0\0\0\0\0\0\0\0", 8)) {
- @@ -192,7 +192,7 @@ nfp_resource_acquire(struct nfp_cpp *cpp, const char *name)
- if (!res)
- return ERR_PTR(-ENOMEM);
- - strncpy(res->name, name, NFP_RESOURCE_ENTRY_NAME_SZ);
- + strscpy(res->name, name, NFP_RESOURCE_ENTRY_NAME_SZ);
- dev_mutex = nfp_cpp_mutex_alloc(cpp, NFP_RESOURCE_TBL_TARGET,
- NFP_RESOURCE_TBL_BASE,
- diff --git a/drivers/net/hamradio/hdlcdrv.c b/drivers/net/hamradio/hdlcdrv.c
- index 97e3bc60c3e7..75a45e6398c2 100644
- --- a/drivers/net/hamradio/hdlcdrv.c
- +++ b/drivers/net/hamradio/hdlcdrv.c
- @@ -611,7 +611,7 @@ static int hdlcdrv_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
- case HDLCDRVCTL_DRIVERNAME:
- if (s->ops && s->ops->drvname) {
- - strncpy(bi.data.drivername, s->ops->drvname,
- + strscpy(bi.data.drivername, s->ops->drvname,
- sizeof(bi.data.drivername));
- break;
- }
- diff --git a/drivers/net/wireless/ath/ath5k/led.c b/drivers/net/wireless/ath/ath5k/led.c
- index 6a2a16856763..9b274cd2dd19 100644
- --- a/drivers/net/wireless/ath/ath5k/led.c
- +++ b/drivers/net/wireless/ath/ath5k/led.c
- @@ -129,7 +129,7 @@ ath5k_register_led(struct ath5k_hw *ah, struct ath5k_led *led,
- int err;
- led->ah = ah;
- - strncpy(led->name, name, sizeof(led->name));
- + strscpy(led->name, name, sizeof(led->name));
- led->name[sizeof(led->name)-1] = 0;
- led->led_dev.name = led->name;
- led->led_dev.default_trigger = trigger;
- diff --git a/drivers/net/wireless/atmel/atmel.c b/drivers/net/wireless/atmel/atmel.c
- index c9dd5e44c9c6..fc58111d6e02 100644
- --- a/drivers/net/wireless/atmel/atmel.c
- +++ b/drivers/net/wireless/atmel/atmel.c
- @@ -2672,7 +2672,7 @@ static int atmel_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
- priv->firmware = new_firmware;
- priv->firmware_length = com.len;
- - strncpy(priv->firmware_id, com.id, 31);
- + strscpy(priv->firmware_id, com.id, 31);
- priv->firmware_id[31] = '\0';
- break;
- diff --git a/drivers/net/wireless/broadcom/b43/leds.c b/drivers/net/wireless/broadcom/b43/leds.c
- index cb987c2ecc6b..2e328bfe83e6 100644
- --- a/drivers/net/wireless/broadcom/b43/leds.c
- +++ b/drivers/net/wireless/broadcom/b43/leds.c
- @@ -131,7 +131,7 @@ static int b43_register_led(struct b43_wldev *dev, struct b43_led *led,
- led->wl = dev->wl;
- led->index = led_index;
- led->activelow = activelow;
- - strncpy(led->name, name, sizeof(led->name));
- + strscpy(led->name, name, sizeof(led->name));
- atomic_set(&led->state, 0);
- led->led_dev.name = led->name;
- diff --git a/drivers/net/wireless/broadcom/b43legacy/leds.c b/drivers/net/wireless/broadcom/b43legacy/leds.c
- index fd4565389c77..2e933a3190d2 100644
- --- a/drivers/net/wireless/broadcom/b43legacy/leds.c
- +++ b/drivers/net/wireless/broadcom/b43legacy/leds.c
- @@ -101,7 +101,7 @@ static int b43legacy_register_led(struct b43legacy_wldev *dev,
- led->dev = dev;
- led->index = led_index;
- led->activelow = activelow;
- - strncpy(led->name, name, sizeof(led->name));
- + strscpy(led->name, name, sizeof(led->name));
- led->led_dev.name = led->name;
- led->led_dev.default_trigger = default_trigger;
- diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
- index 15fa00d79fc6..110af59c2aa1 100644
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
- @@ -4166,8 +4166,7 @@ static u32
- brcmf_vndr_ie(u8 *iebuf, s32 pktflag, u8 *ie_ptr, u32 ie_len, s8 *add_del_cmd)
- {
- - strncpy(iebuf, add_del_cmd, VNDR_IE_CMD_LEN - 1);
- - iebuf[VNDR_IE_CMD_LEN - 1] = '\0';
- + strscpy(iebuf, add_del_cmd, VNDR_IE_CMD_LEN);
- put_unaligned_le32(1, &iebuf[VNDR_IE_COUNT_OFFSET]);
- diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c
- index b7df576bb84d..66336c87b0d9 100644
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c
- @@ -584,8 +584,7 @@ struct dma_pub *dma_attach(char *name, struct brcms_c_info *wlc,
- rxextheadroom, nrxpost, rxoffset, txregbase, rxregbase);
- /* make a private copy of our callers name */
- - strncpy(di->name, name, MAXNAMEL);
- - di->name[MAXNAMEL - 1] = '\0';
- + strscpy(di->name, name, MAXNAMEL);
- di->dmadev = core->dma_dev;
- diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
- index 67aefc8fc9ac..1591641a0191 100644
- --- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
- +++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
- @@ -747,9 +747,9 @@ void iwl_fw_error_dump(struct iwl_fw_runtime *fwrt)
- dump_info->hw_step = cpu_to_le32(CSR_HW_REV_STEP(fwrt->trans->hw_rev));
- memcpy(dump_info->fw_human_readable, fwrt->fw->human_readable,
- sizeof(dump_info->fw_human_readable));
- - strncpy(dump_info->dev_human_readable, fwrt->trans->cfg->name,
- + strscpy(dump_info->dev_human_readable, fwrt->trans->cfg->name,
- sizeof(dump_info->dev_human_readable));
- - strncpy(dump_info->bus_human_readable, fwrt->dev->bus->name,
- + strscpy(dump_info->bus_human_readable, fwrt->dev->bus->name,
- sizeof(dump_info->bus_human_readable));
- dump_data = iwl_fw_error_next_data(dump_data);
- diff --git a/drivers/net/wireless/intersil/hostap/hostap_ioctl.c b/drivers/net/wireless/intersil/hostap/hostap_ioctl.c
- index c1bc0a6ef300..451b20108770 100644
- --- a/drivers/net/wireless/intersil/hostap/hostap_ioctl.c
- +++ b/drivers/net/wireless/intersil/hostap/hostap_ioctl.c
- @@ -3608,7 +3608,7 @@ static int prism2_ioctl_get_encryption(local_info_t *local,
- param->u.crypt.key_len = 0;
- param->u.crypt.idx = 0xff;
- } else {
- - strncpy(param->u.crypt.alg, (*crypt)->ops->name,
- + strscpy(param->u.crypt.alg, (*crypt)->ops->name,
- HOSTAP_CRYPT_ALG_NAME_LEN);
- param->u.crypt.key_len = 0;
- diff --git a/drivers/net/wireless/intersil/prism54/isl_ioctl.c b/drivers/net/wireless/intersil/prism54/isl_ioctl.c
- index 334717b0a2be..2320ae9f72c5 100644
- --- a/drivers/net/wireless/intersil/prism54/isl_ioctl.c
- +++ b/drivers/net/wireless/intersil/prism54/isl_ioctl.c
- @@ -264,7 +264,7 @@ prism54_get_name(struct net_device *ndev, struct iw_request_info *info,
- int rvalue;
- if (islpci_get_state(priv) < PRV_STATE_INIT) {
- - strncpy(cwrq, "NOT READY!", IFNAMSIZ);
- + strscpy(cwrq, "NOT READY!", IFNAMSIZ);
- return 0;
- }
- rvalue = mgt_get_request(priv, OID_INL_PHYCAPABILITIES, 0, NULL, &r);
- @@ -281,7 +281,7 @@ prism54_get_name(struct net_device *ndev, struct iw_request_info *info,
- capabilities = "IEEE 802.11b/g"; /* Default */
- break;
- }
- - strncpy(cwrq, capabilities, IFNAMSIZ);
- + strscpy(cwrq, capabilities, IFNAMSIZ);
- return rvalue;
- }
- diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
- index 0133fcd4601b..1bf9b573c9d8 100644
- --- a/drivers/net/wireless/ray_cs.c
- +++ b/drivers/net/wireless/ray_cs.c
- @@ -635,7 +635,7 @@ static void init_startup_params(ray_dev_t *local)
- local->sparm.b4.a_acting_as_ap_status = TYPE_STA;
- if (essid != NULL)
- - strncpy(local->sparm.b4.a_current_ess_id, essid, ESSID_SIZE);
- + strscpy(local->sparm.b4.a_current_ess_id, essid, ESSID_SIZE);
- } /* init_startup_params */
- /*===========================================================================*/
- diff --git a/drivers/net/wireless/realtek/rtl818x/rtl8187/leds.c b/drivers/net/wireless/realtek/rtl818x/rtl8187/leds.c
- index c2d5b495c179..8d9373184e2b 100644
- --- a/drivers/net/wireless/realtek/rtl818x/rtl8187/leds.c
- +++ b/drivers/net/wireless/realtek/rtl818x/rtl8187/leds.c
- @@ -146,7 +146,7 @@ static int rtl8187_register_led(struct ieee80211_hw *dev,
- led->dev = dev;
- led->ledpin = ledpin;
- led->is_radio = is_radio;
- - strncpy(led->name, name, sizeof(led->name));
- + strscpy(led->name, name, sizeof(led->name));
- led->led_dev.name = led->name;
- led->led_dev.default_trigger = default_trigger;
- diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
- index 0fe7ea35c221..e8cdbb8f68d7 100644
- --- a/drivers/nvme/host/core.c
- +++ b/drivers/nvme/host/core.c
- @@ -2006,7 +2006,7 @@ static void nvme_init_subnqn(struct nvme_subsystem *subsys, struct nvme_ctrl *ct
- nqnlen = strnlen(id->subnqn, NVMF_NQN_SIZE);
- if (nqnlen > 0 && nqnlen < NVMF_NQN_SIZE) {
- - strncpy(subsys->subnqn, id->subnqn, NVMF_NQN_SIZE);
- + strcpy(subsys->subnqn, id->subnqn);
- return;
- }
- diff --git a/drivers/nvme/target/discovery.c b/drivers/nvme/target/discovery.c
- index 8f3b57b4c97b..f0fd39bc41c0 100644
- --- a/drivers/nvme/target/discovery.c
- +++ b/drivers/nvme/target/discovery.c
- @@ -133,7 +133,7 @@ static void nvmet_execute_identify_disc_ctrl(struct nvmet_req *req)
- }
- memset(id->fr, ' ', sizeof(id->fr));
- - strncpy((char *)id->fr, UTS_RELEASE, sizeof(id->fr));
- + strncpy(id->fr, UTS_RELEASE, sizeof(id->fr));
- /* no limit on data transfer sizes for now */
- id->mdts = 0;
- diff --git a/drivers/power/supply/charger-manager.c b/drivers/power/supply/charger-manager.c
- index 1de4b4493824..d94306c7b16a 100644
- --- a/drivers/power/supply/charger-manager.c
- +++ b/drivers/power/supply/charger-manager.c
- @@ -470,13 +470,13 @@ static void uevent_notify(struct charger_manager *cm, const char *event)
- if (env_str_save[0] == 0) {
- if (!strncmp(env_str, event, UEVENT_BUF_SIZE))
- return; /* status not changed */
- - strncpy(env_str_save, event, UEVENT_BUF_SIZE);
- + strscpy(env_str_save, event, UEVENT_BUF_SIZE);
- return;
- }
- if (!strncmp(env_str_save, event, UEVENT_BUF_SIZE))
- return; /* Duplicated. */
- - strncpy(env_str_save, event, UEVENT_BUF_SIZE);
- + strscpy(env_str_save, event, UEVENT_BUF_SIZE);
- return;
- }
- @@ -485,7 +485,7 @@ static void uevent_notify(struct charger_manager *cm, const char *event)
- if (!env_str_save[0])
- return;
- - strncpy(env_str, env_str_save, UEVENT_BUF_SIZE);
- + strscpy(env_str, env_str_save, UEVENT_BUF_SIZE);
- kobject_uevent(&cm->dev->kobj, KOBJ_CHANGE);
- env_str_save[0] = 0;
- @@ -497,7 +497,7 @@ static void uevent_notify(struct charger_manager *cm, const char *event)
- return;
- /* save the status and notify the update */
- - strncpy(env_str, event, UEVENT_BUF_SIZE);
- + strscpy(env_str, event, UEVENT_BUF_SIZE);
- kobject_uevent(&cm->dev->kobj, KOBJ_CHANGE);
- dev_info(cm->dev, "%s\n", event);
- @@ -1718,9 +1718,9 @@ static int charger_manager_probe(struct platform_device *pdev)
- memcpy(&cm->charger_psy_desc, &psy_default, sizeof(psy_default));
- if (!desc->psy_name)
- - strncpy(cm->psy_name_buf, psy_default.name, PSY_NAME_MAX);
- + strscpy(cm->psy_name_buf, psy_default.name, PSY_NAME_MAX);
- else
- - strncpy(cm->psy_name_buf, desc->psy_name, PSY_NAME_MAX);
- + strscpy(cm->psy_name_buf, desc->psy_name, PSY_NAME_MAX);
- cm->charger_psy_desc.name = cm->psy_name_buf;
- /* Allocate for psy properties because they may vary */
- diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
- index e0f31ed096a5..c22a3d211024 100644
- --- a/drivers/rpmsg/qcom_glink_native.c
- +++ b/drivers/rpmsg/qcom_glink_native.c
- @@ -1405,7 +1405,7 @@ static int qcom_glink_rx_open(struct qcom_glink *glink, unsigned int rcid,
- }
- rpdev->ept = &channel->ept;
- - strncpy(rpdev->id.name, name, RPMSG_NAME_SIZE);
- + strscpy(rpdev->id.name, name, RPMSG_NAME_SIZE);
- rpdev->src = RPMSG_ADDR_ANY;
- rpdev->dst = RPMSG_ADDR_ANY;
- rpdev->ops = &glink_device_ops;
- @@ -1455,7 +1455,7 @@ static void qcom_glink_rx_close(struct qcom_glink *glink, unsigned int rcid)
- cancel_work_sync(&channel->intent_work);
- if (channel->rpdev) {
- - strncpy(chinfo.name, channel->name, sizeof(chinfo.name));
- + strscpy(chinfo.name, channel->name, sizeof(chinfo.name));
- chinfo.src = RPMSG_ADDR_ANY;
- chinfo.dst = RPMSG_ADDR_ANY;
- diff --git a/drivers/rpmsg/qcom_smd.c b/drivers/rpmsg/qcom_smd.c
- index 92d0c6a7a837..398444d47a5a 100644
- --- a/drivers/rpmsg/qcom_smd.c
- +++ b/drivers/rpmsg/qcom_smd.c
- @@ -1038,7 +1038,7 @@ static int qcom_smd_create_device(struct qcom_smd_channel *channel)
- /* Assign public information to the rpmsg_device */
- rpdev = &qsdev->rpdev;
- - strncpy(rpdev->id.name, channel->name, RPMSG_NAME_SIZE);
- + strscpy(rpdev->id.name, channel->name, RPMSG_NAME_SIZE);
- rpdev->src = RPMSG_ADDR_ANY;
- rpdev->dst = RPMSG_ADDR_ANY;
- @@ -1261,7 +1261,7 @@ static void qcom_channel_state_worker(struct work_struct *work)
- spin_unlock_irqrestore(&edge->channels_lock, flags);
- - strncpy(chinfo.name, channel->name, sizeof(chinfo.name));
- + strscpy(chinfo.name, channel->name, sizeof(chinfo.name));
- chinfo.src = RPMSG_ADDR_ANY;
- chinfo.dst = RPMSG_ADDR_ANY;
- rpmsg_unregister_device(&edge->dev, &chinfo);
- diff --git a/drivers/scsi/3w-9xxx.h b/drivers/scsi/3w-9xxx.h
- index d88cd3499bd5..dfe68dae5583 100644
- --- a/drivers/scsi/3w-9xxx.h
- +++ b/drivers/scsi/3w-9xxx.h
- @@ -616,7 +616,7 @@ typedef union TAG_TW_Response_Queue {
- /* Compatibility information structure */
- typedef struct TAG_TW_Compatibility_Info
- {
- - char driver_version[32];
- + char driver_version[32] __attribute__((nonstring));
- unsigned short working_srl;
- unsigned short working_branch;
- unsigned short working_build;
- diff --git a/drivers/scsi/3w-sas.h b/drivers/scsi/3w-sas.h
- index 05e77d84c16d..2c302fbd7cf9 100644
- --- a/drivers/scsi/3w-sas.h
- +++ b/drivers/scsi/3w-sas.h
- @@ -334,7 +334,7 @@ typedef struct {
- /* Compatibility information structure */
- typedef struct TAG_TW_Compatibility_Info
- {
- - char driver_version[32];
- + char driver_version[32] __attribute__((nonstring));
- unsigned short working_srl;
- unsigned short working_branch;
- unsigned short working_build;
- diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
- index 75e828bd30e3..585ad1ae3565 100644
- --- a/drivers/scsi/arcmsr/arcmsr_hba.c
- +++ b/drivers/scsi/arcmsr/arcmsr_hba.c
- @@ -2879,7 +2879,7 @@ static void arcmsr_handle_virtual_command(struct AdapterControlBlock *acb,
- {
- switch (cmd->cmnd[0]) {
- case INQUIRY: {
- - unsigned char inqdata[36];
- + char inqdata[36];
- char *buffer;
- struct scatterlist *sg;
- @@ -2896,11 +2896,11 @@ static void arcmsr_handle_virtual_command(struct AdapterControlBlock *acb,
- /* ISO, ECMA, & ANSI versions */
- inqdata[4] = 31;
- /* length of additional data */
- - strncpy(&inqdata[8], "Areca ", 8);
- + memcpy(&inqdata[8], "Areca ", 8);
- /* Vendor Identification */
- - strncpy(&inqdata[16], "RAID controller ", 16);
- + memcpy(&inqdata[16], "RAID controller ", 16);
- /* Product Identification */
- - strncpy(&inqdata[32], "R001", 4); /* Product Revision */
- + memcpy(&inqdata[32], "R001", 4); /* Product Revision */
- sg = scsi_sglist(cmd);
- buffer = kmap_atomic(sg_page(sg)) + sg->offset;
- diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c
- index 9a602ae8987f..5671870bc17a 100644
- --- a/drivers/scsi/ips.c
- +++ b/drivers/scsi/ips.c
- @@ -2244,7 +2244,7 @@ ips_get_bios_version(ips_ha_t * ha, int intr)
- major = 0;
- minor = 0;
- - strncpy(ha->bios_version, " ?", 8);
- + memcpy(ha->bios_version, " ?", 8);
- if (ha->pcidev->device == IPS_DEVICEID_COPPERHEAD) {
- if (IPS_USE_MEMIO(ha)) {
- @@ -3519,11 +3519,11 @@ ips_send_cmd(ips_ha_t * ha, ips_scb_t * scb)
- inquiry.Flags[1] =
- IPS_SCSI_INQ_WBus16 |
- IPS_SCSI_INQ_Sync;
- - strncpy(inquiry.VendorId, "IBM ",
- + memcpy(inquiry.VendorId, "IBM ",
- 8);
- - strncpy(inquiry.ProductId,
- + memcpy(inquiry.ProductId,
- "SERVERAID ", 16);
- - strncpy(inquiry.ProductRevisionLevel,
- + memcpy(inquiry.ProductRevisionLevel,
- "1.00", 4);
- ips_scmd_buf_write(scb->scsi_cmd,
- @@ -4040,9 +4040,9 @@ ips_inquiry(ips_ha_t * ha, ips_scb_t * scb)
- inquiry.Flags[0] = IPS_SCSI_INQ_Address16;
- inquiry.Flags[1] =
- IPS_SCSI_INQ_WBus16 | IPS_SCSI_INQ_Sync | IPS_SCSI_INQ_CmdQue;
- - strncpy(inquiry.VendorId, "IBM ", 8);
- - strncpy(inquiry.ProductId, "SERVERAID ", 16);
- - strncpy(inquiry.ProductRevisionLevel, "1.00", 4);
- + memcpy(inquiry.VendorId, "IBM ", 8);
- + memcpy(inquiry.ProductId, "SERVERAID ", 16);
- + memcpy(inquiry.ProductRevisionLevel, "1.00", 4);
- ips_scmd_buf_write(scb->scsi_cmd, &inquiry, sizeof (inquiry));
- @@ -5626,10 +5626,10 @@ ips_write_driver_status(ips_ha_t * ha, int intr)
- /* change values (as needed) */
- ha->nvram->operating_system = IPS_OS_LINUX;
- ha->nvram->adapter_type = ha->ad_type;
- - strncpy((char *) ha->nvram->driver_high, IPS_VERSION_HIGH, 4);
- - strncpy((char *) ha->nvram->driver_low, IPS_VERSION_LOW, 4);
- - strncpy((char *) ha->nvram->bios_high, ha->bios_version, 4);
- - strncpy((char *) ha->nvram->bios_low, ha->bios_version + 4, 4);
- + memcpy((char *) ha->nvram->driver_high, IPS_VERSION_HIGH, 4);
- + memcpy((char *) ha->nvram->driver_low, IPS_VERSION_LOW, 4);
- + memcpy((char *) ha->nvram->bios_high, ha->bios_version, 4);
- + memcpy((char *) ha->nvram->bios_low, ha->bios_version + 4, 4);
- ha->nvram->versioning = 0; /* Indicate the Driver Does Not Support Versioning */
- diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
- index 46f6d97d21d6..9ddd54946d1c 100644
- --- a/drivers/scsi/lpfc/lpfc_attr.c
- +++ b/drivers/scsi/lpfc/lpfc_attr.c
- @@ -3769,7 +3769,7 @@ lpfc_stat_data_ctrl_store(struct device *dev, struct device_attribute *attr,
- if (strlen(buf) > (LPFC_MAX_DATA_CTRL_LEN - 1))
- return -EINVAL;
- - strncpy(bucket_data, buf, LPFC_MAX_DATA_CTRL_LEN);
- + strscpy(bucket_data, buf, LPFC_MAX_DATA_CTRL_LEN);
- str_ptr = &bucket_data[0];
- /* Ignore this token - this is command token */
- token = strsep(&str_ptr, "\t ");
- diff --git a/drivers/scsi/qla2xxx/qla_mr.c b/drivers/scsi/qla2xxx/qla_mr.c
- index 7113acf42ff3..42d2e8633b1c 100644
- --- a/drivers/scsi/qla2xxx/qla_mr.c
- +++ b/drivers/scsi/qla2xxx/qla_mr.c
- @@ -1875,21 +1875,21 @@ qlafx00_fx_disc(scsi_qla_host_t *vha, fc_port_t *fcport, uint16_t fx_type)
- phost_info = &preg_hsi->hsi;
- memset(preg_hsi, 0, sizeof(struct register_host_info));
- phost_info->os_type = OS_TYPE_LINUX;
- - strncpy(phost_info->sysname,
- + strscpy(phost_info->sysname,
- p_sysid->sysname, SYSNAME_LENGTH);
- - strncpy(phost_info->nodename,
- + strscpy(phost_info->nodename,
- p_sysid->nodename, NODENAME_LENGTH);
- if (!strcmp(phost_info->nodename, "(none)"))
- ha->mr.host_info_resend = true;
- - strncpy(phost_info->release,
- + strscpy(phost_info->release,
- p_sysid->release, RELEASE_LENGTH);
- - strncpy(phost_info->version,
- + strscpy(phost_info->version,
- p_sysid->version, VERSION_LENGTH);
- - strncpy(phost_info->machine,
- + strscpy(phost_info->machine,
- p_sysid->machine, MACHINE_LENGTH);
- - strncpy(phost_info->domainname,
- + strscpy(phost_info->domainname,
- p_sysid->domainname, DOMNAME_LENGTH);
- - strncpy(phost_info->hostdriver,
- + strscpy(phost_info->hostdriver,
- QLA2XXX_VERSION, VERSION_LENGTH);
- preg_hsi->utc = (uint64_t)ktime_get_real_seconds();
- ql_dbg(ql_dbg_init, vha, 0x0149,
- diff --git a/drivers/soc/qcom/wcnss_ctrl.c b/drivers/soc/qcom/wcnss_ctrl.c
- index d008e5b82db4..1d00e964d4aa 100644
- --- a/drivers/soc/qcom/wcnss_ctrl.c
- +++ b/drivers/soc/qcom/wcnss_ctrl.c
- @@ -281,7 +281,7 @@ struct rpmsg_endpoint *qcom_wcnss_open_channel(void *wcnss, const char *name, rp
- struct rpmsg_channel_info chinfo;
- struct wcnss_ctrl *_wcnss = wcnss;
- - strncpy(chinfo.name, name, sizeof(chinfo.name));
- + strscpy(chinfo.name, name, sizeof(chinfo.name));
- chinfo.src = RPMSG_ADDR_ANY;
- chinfo.dst = RPMSG_ADDR_ANY;
- diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
- index 0e36b66ae5f7..24bd4dcb7a8d 100644
- --- a/drivers/staging/fbtft/fbtft-core.c
- +++ b/drivers/staging/fbtft/fbtft-core.c
- @@ -771,7 +771,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
- fbdefio->deferred_io = fbtft_deferred_io;
- fb_deferred_io_init(info);
- - strncpy(info->fix.id, dev->driver->name, 16);
- + strscpy(info->fix.id, dev->driver->name, 16);
- info->fix.type = FB_TYPE_PACKED_PIXELS;
- info->fix.visual = FB_VISUAL_TRUECOLOR;
- info->fix.xpanstep = 0;
- diff --git a/drivers/staging/irda/drivers/irtty-sir.c b/drivers/staging/irda/drivers/irtty-sir.c
- index 7a20a9a4663a..22f687443d58 100644
- --- a/drivers/staging/irda/drivers/irtty-sir.c
- +++ b/drivers/staging/irda/drivers/irtty-sir.c
- @@ -402,7 +402,7 @@ static int irtty_ioctl(struct tty_struct *tty, struct file *file, unsigned int c
- IRDA_ASSERT(dev->netdev != NULL, return -1;);
- memset(&info, 0, sizeof(info));
- - strncpy(info.name, dev->netdev->name, sizeof(info.name)-1);
- + strscpy(info.name, dev->netdev->name, sizeof(info.name));
- if (copy_to_user((void __user *)arg, &info, sizeof(info)))
- err = -EFAULT;
- diff --git a/drivers/staging/irda/net/af_irda.c b/drivers/staging/irda/net/af_irda.c
- index c13553a9ee11..c1215fe4e1f0 100644
- --- a/drivers/staging/irda/net/af_irda.c
- +++ b/drivers/staging/irda/net/af_irda.c
- @@ -469,7 +469,7 @@ static int irda_open_tsap(struct irda_sock *self, __u8 tsap_sel, char *name)
- notify.udata_indication = irda_data_indication;
- notify.flow_indication = irda_flow_indication;
- notify.instance = self;
- - strncpy(notify.name, name, NOTIFY_MAX_NAME);
- + strscpy(notify.name, name, NOTIFY_MAX_NAME);
- self->tsap = irttp_open_tsap(tsap_sel, DEFAULT_INITIAL_CREDIT,
- ¬ify);
- @@ -504,7 +504,7 @@ static int irda_open_lsap(struct irda_sock *self, int pid)
- irda_notify_init(¬ify);
- notify.udata_indication = irda_data_indication;
- notify.instance = self;
- - strncpy(notify.name, "Ultra", NOTIFY_MAX_NAME);
- + strscpy(notify.name, "Ultra", NOTIFY_MAX_NAME);
- self->lsap = irlmp_open_lsap(LSAP_CONNLESS, ¬ify, pid);
- if (self->lsap == NULL) {
- diff --git a/drivers/staging/irda/net/ircomm/ircomm_param.c b/drivers/staging/irda/net/ircomm/ircomm_param.c
- index 5728e76ca6d5..89e44e5a6da2 100644
- --- a/drivers/staging/irda/net/ircomm/ircomm_param.c
- +++ b/drivers/staging/irda/net/ircomm/ircomm_param.c
- @@ -254,7 +254,7 @@ static int ircomm_param_port_name(void *instance, irda_param_t *param, int get)
- pr_debug("%s(), not imp!\n", __func__);
- } else {
- pr_debug("%s(), port-name=%s\n", __func__ , param->pv.c);
- - strncpy(self->settings.port_name, param->pv.c, 32);
- + strscpy(self->settings.port_name, param->pv.c, 32);
- }
- return 0;
- diff --git a/drivers/staging/irda/net/irlmp.c b/drivers/staging/irda/net/irlmp.c
- index 7af618fb66c0..23fc1e83612a 100644
- --- a/drivers/staging/irda/net/irlmp.c
- +++ b/drivers/staging/irda/net/irlmp.c
- @@ -854,7 +854,7 @@ void irlmp_do_discovery(int nslots)
- * end
- */
- irlmp->discovery_cmd.data.charset = CS_ASCII;
- - strncpy(irlmp->discovery_cmd.data.info, sysctl_devname,
- + strscpy(irlmp->discovery_cmd.data.info, sysctl_devname,
- NICKNAME_MAX_LEN);
- irlmp->discovery_cmd.name_len = strlen(irlmp->discovery_cmd.data.info);
- irlmp->discovery_cmd.nslots = nslots;
- @@ -1083,7 +1083,7 @@ discovery_t *irlmp_get_discovery_response(void)
- */
- irlmp->discovery_rsp.data.charset = CS_ASCII;
- - strncpy(irlmp->discovery_rsp.data.info, sysctl_devname,
- + strscpy(irlmp->discovery_rsp.data.info, sysctl_devname,
- NICKNAME_MAX_LEN);
- irlmp->discovery_rsp.name_len = strlen(irlmp->discovery_rsp.data.info);
- diff --git a/drivers/staging/ks7010/ks_wlan_net.c b/drivers/staging/ks7010/ks_wlan_net.c
- index e48c55769c94..adc812a3f0c9 100644
- --- a/drivers/staging/ks7010/ks_wlan_net.c
- +++ b/drivers/staging/ks7010/ks_wlan_net.c
- @@ -429,8 +429,7 @@ static int ks_wlan_get_nick(struct net_device *dev,
- return -EPERM;
- /* for SLEEP MODE */
- - strncpy(extra, priv->nick, 16);
- - extra[16] = '\0';
- + strscpy(extra, priv->nick, 16);
- dwrq->length = strlen(extra) + 1;
- return 0;
- diff --git a/drivers/staging/lustre/include/uapi/linux/lustre/lustre_user.h b/drivers/staging/lustre/include/uapi/linux/lustre/lustre_user.h
- index 5e332e3af68a..61be9d551bf4 100644
- --- a/drivers/staging/lustre/include/uapi/linux/lustre/lustre_user.h
- +++ b/drivers/staging/lustre/include/uapi/linux/lustre/lustre_user.h
- @@ -489,8 +489,7 @@ static inline int obd_uuid_empty(struct obd_uuid *uuid)
- static inline void obd_str2uuid(struct obd_uuid *uuid, const char *tmp)
- {
- - strncpy((char *)uuid->uuid, tmp, sizeof(*uuid));
- - uuid->uuid[sizeof(*uuid) - 1] = '\0';
- + strscpy((char *)uuid->uuid, tmp, sizeof(*uuid));
- }
- /* For printf's only, make sure uuid is terminated */
- diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c
- index 48d25ccadbb3..bd30308d1852 100644
- --- a/drivers/staging/lustre/lnet/lnet/api-ni.c
- +++ b/drivers/staging/lustre/lnet/lnet/api-ni.c
- @@ -1671,7 +1671,7 @@ lnet_fill_ni_info(struct lnet_ni *ni, struct lnet_ioctl_config_data *config)
- if (!ni->ni_interfaces[i])
- break;
- - strncpy(net_config->ni_interfaces[i],
- + strscpy(net_config->ni_interfaces[i],
- ni->ni_interfaces[i],
- sizeof(net_config->ni_interfaces[i]));
- }
- diff --git a/drivers/staging/lustre/lnet/lnet/config.c b/drivers/staging/lustre/lnet/lnet/config.c
- index 0aea268a4f1c..25b9832fb70b 100644
- --- a/drivers/staging/lustre/lnet/lnet/config.c
- +++ b/drivers/staging/lustre/lnet/lnet/config.c
- @@ -1004,8 +1004,7 @@ lnet_splitnets(char *source, struct list_head *nets)
- if (!tb2)
- return -ENOMEM;
- - strncpy(tb2->ltb_text, sep, len);
- - tb2->ltb_text[len] = '\0';
- + strcpy(tb2->ltb_text, sep);
- list_add_tail(&tb2->ltb_list, nets);
- tb = tb2;
- @@ -1048,8 +1047,7 @@ lnet_match_networks(char **networksp, char *ip2nets, __u32 *ipaddrs, int nip)
- rc = 0;
- list_for_each_entry_safe(tb, temp, &raw_entries, ltb_list) {
- - strncpy(source, tb->ltb_text, sizeof(source));
- - source[sizeof(source) - 1] = '\0';
- + strscpy(source, tb->ltb_text, sizeof(source));
- /* replace ltb_text with the network(s) add on match */
- rc = lnet_match_network_tokens(tb->ltb_text, ipaddrs, nip);
- diff --git a/drivers/staging/media/imx/imx-media-capture.c b/drivers/staging/media/imx/imx-media-capture.c
- index 576bdc7e9c42..d8eab0fb1835 100644
- --- a/drivers/staging/media/imx/imx-media-capture.c
- +++ b/drivers/staging/media/imx/imx-media-capture.c
- @@ -73,8 +73,8 @@ static int vidioc_querycap(struct file *file, void *fh,
- {
- struct capture_priv *priv = video_drvdata(file);
- - strncpy(cap->driver, "imx-media-capture", sizeof(cap->driver) - 1);
- - strncpy(cap->card, "imx-media-capture", sizeof(cap->card) - 1);
- + strscpy(cap->driver, "imx-media-capture", sizeof(cap->driver));
- + strscpy(cap->card, "imx-media-capture", sizeof(cap->card));
- snprintf(cap->bus_info, sizeof(cap->bus_info),
- "platform:%s", priv->src_sd->name);
- diff --git a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
- index 10349db6066b..e4bca2d854e8 100644
- --- a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
- +++ b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
- @@ -1933,7 +1933,7 @@ static int rtw_wx_set_enc_ext(struct net_device *dev,
- goto exit;
- }
- - strncpy((char *)param->u.crypt.alg, alg_name, IEEE_CRYPT_ALG_NAME_LEN);
- + strscpy((char *)param->u.crypt.alg, alg_name, IEEE_CRYPT_ALG_NAME_LEN);
- if (pext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY)
- param->u.crypt.set_tx = 1;
- diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c
- index 919231fec09c..668845aa4871 100644
- --- a/drivers/staging/rtl8192e/rtllib_softmac.c
- +++ b/drivers/staging/rtl8192e/rtllib_softmac.c
- @@ -1684,14 +1684,14 @@ inline void rtllib_softmac_new_net(struct rtllib_device *ieee,
- * essid provided by the user.
- */
- if (!ssidbroad) {
- - strncpy(tmp_ssid, ieee->current_network.ssid,
- + strscpy(tmp_ssid, ieee->current_network.ssid,
- IW_ESSID_MAX_SIZE);
- tmp_ssid_len = ieee->current_network.ssid_len;
- }
- memcpy(&ieee->current_network, net,
- sizeof(struct rtllib_network));
- if (!ssidbroad) {
- - strncpy(ieee->current_network.ssid, tmp_ssid,
- + strscpy(ieee->current_network.ssid, tmp_ssid,
- IW_ESSID_MAX_SIZE);
- ieee->current_network.ssid_len = tmp_ssid_len;
- }
- diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
- index 25c186a8bde3..bd98235416cd 100644
- --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
- +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
- @@ -1460,12 +1460,12 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee
- * essid provided by the user.
- */
- if (!ssidbroad) {
- - strncpy(tmp_ssid, ieee->current_network.ssid, IW_ESSID_MAX_SIZE);
- + strscpy(tmp_ssid, ieee->current_network.ssid, IW_ESSID_MAX_SIZE);
- tmp_ssid_len = ieee->current_network.ssid_len;
- }
- memcpy(&ieee->current_network, net, sizeof(struct ieee80211_network));
- - strncpy(ieee->current_network.ssid, tmp_ssid, IW_ESSID_MAX_SIZE);
- + strscpy(ieee->current_network.ssid, tmp_ssid, IW_ESSID_MAX_SIZE);
- ieee->current_network.ssid_len = tmp_ssid_len;
- printk(KERN_INFO"Linking with %s,channel:%d, qos:%d, myHT:%d, networkHT:%d\n",ieee->current_network.ssid,ieee->current_network.channel, ieee->current_network.qos_data.supported, ieee->pHTInfo->bEnableHT, ieee->current_network.bssht.bdSupportHT);
- diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
- index d43399f985f9..598db8ebb304 100644
- --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
- +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
- @@ -1798,7 +1798,7 @@ static int r871x_wx_set_enc_ext(struct net_device *dev,
- return -ENOMEM;
- param->cmd = IEEE_CMD_SET_ENCRYPTION;
- eth_broadcast_addr(param->sta_addr);
- - strncpy((char *)param->u.crypt.alg, alg_name, IEEE_CRYPT_ALG_NAME_LEN);
- + strscpy((char *)param->u.crypt.alg, alg_name, IEEE_CRYPT_ALG_NAME_LEN);
- if (pext->ext_flags & IW_ENCODE_EXT_GROUP_KEY)
- param->u.crypt.set_tx = 0;
- if (pext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY)
- diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
- index 51d48de24a24..52506e47a3eb 100644
- --- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
- +++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
- @@ -2663,7 +2663,7 @@ static int rtw_cfg80211_add_monitor_if (struct adapter *padapter, char *name, st
- }
- mon_ndev->type = ARPHRD_IEEE80211_RADIOTAP;
- - strncpy(mon_ndev->name, name, IFNAMSIZ);
- + strscpy(mon_ndev->name, name, IFNAMSIZ);
- mon_ndev->name[IFNAMSIZ - 1] = 0;
- mon_ndev->needs_free_netdev = true;
- mon_ndev->priv_destructor = rtw_ndev_destructor;
- diff --git a/drivers/staging/rts5208/rtsx_scsi.c b/drivers/staging/rts5208/rtsx_scsi.c
- index 146548284ec7..854bfbe779dc 100644
- --- a/drivers/staging/rts5208/rtsx_scsi.c
- +++ b/drivers/staging/rts5208/rtsx_scsi.c
- @@ -480,7 +480,7 @@ static noinline_for_stack int inquiry(struct scsi_cmnd *srb, struct rtsx_chip *c
- char *inquiry_ms = (char *)"Generic-MemoryStick 1.00 ";
- char *inquiry_string;
- unsigned char sendbytes;
- - unsigned char *buf;
- + char *buf __nonstring;
- u8 card = get_lun_card(chip, lun);
- bool pro_formatter_flag = false;
- unsigned char inquiry_buf[] = {
- @@ -521,22 +521,15 @@ static noinline_for_stack int inquiry(struct scsi_cmnd *srb, struct rtsx_chip *c
- if (!card || (card == MS_CARD))
- pro_formatter_flag = true;
- - if (pro_formatter_flag) {
- - if (scsi_bufflen(srb) < 56)
- - sendbytes = (unsigned char)(scsi_bufflen(srb));
- - else
- - sendbytes = 56;
- -
- - } else {
- - if (scsi_bufflen(srb) < 36)
- - sendbytes = (unsigned char)(scsi_bufflen(srb));
- - else
- - sendbytes = 36;
- - }
- + if (pro_formatter_flag)
- + sendbytes = min(scsi_bufflen(srb), 56u);
- + else
- + sendbytes = min(scsi_bufflen(srb), 36u);
- if (sendbytes > 8) {
- + memset(buf, 0, sendbytes); /* crap workaround for gcc-8 warning */
- memcpy(buf, inquiry_buf, 8);
- - strncpy(buf + 8, inquiry_string, sendbytes - 8);
- + strscpy(buf + 8, inquiry_string, sendbytes - 8);
- if (pro_formatter_flag) {
- /* Additional Length */
- buf[4] = 0x33;
- diff --git a/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c b/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c
- index a91ef6ea29ce..26ba6dc0b3a4 100644
- --- a/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c
- +++ b/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c
- @@ -1114,7 +1114,7 @@ static int create_component(struct vchiq_mmal_instance *instance,
- /* build component create message */
- m.h.type = MMAL_MSG_TYPE_COMPONENT_CREATE;
- m.u.component_create.client_component = (u32)(unsigned long)component;
- - strncpy(m.u.component_create.name, name,
- + strscpy(m.u.component_create.name, name,
- sizeof(m.u.component_create.name));
- ret = send_synchronous_mmal_msg(instance, &m,
- diff --git a/drivers/target/iscsi/iscsi_target_tpg.c b/drivers/target/iscsi/iscsi_target_tpg.c
- index 4b34f71547c6..11445787afe3 100644
- --- a/drivers/target/iscsi/iscsi_target_tpg.c
- +++ b/drivers/target/iscsi/iscsi_target_tpg.c
- @@ -636,8 +636,8 @@ int iscsit_ta_authentication(struct iscsi_portal_group *tpg, u32 authentication)
- none = strstr(buf1, NONE);
- if (none)
- goto out;
- - strncat(buf1, ",", strlen(","));
- - strncat(buf1, NONE, strlen(NONE));
- + strcat(buf1, ",");
- + strcat(buf1, NONE);
- if (iscsi_update_param_value(param, buf1) < 0)
- return -EINVAL;
- }
- diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c
- index 1c3c7ab26a95..c998960f7678 100644
- --- a/drivers/video/fbdev/mx3fb.c
- +++ b/drivers/video/fbdev/mx3fb.c
- @@ -743,7 +743,7 @@ static int mx3fb_set_fix(struct fb_info *fbi)
- struct fb_fix_screeninfo *fix = &fbi->fix;
- struct fb_var_screeninfo *var = &fbi->var;
- - strncpy(fix->id, "DISP3 BG", 8);
- + strscpy(fix->id, "DISP3 BG", 8);
- fix->line_length = var->xres_virtual * var->bits_per_pixel / 8;
- diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
- index 73676eb0244a..742aa5f9b90b 100644
- --- a/drivers/video/fbdev/uvesafb.c
- +++ b/drivers/video/fbdev/uvesafb.c
- @@ -422,7 +422,7 @@ static int uvesafb_vbe_getinfo(struct uvesafb_ktask *task,
- task->t.flags = TF_VBEIB;
- task->t.buf_len = sizeof(struct vbe_ib);
- task->buf = &par->vbe_ib;
- - strncpy(par->vbe_ib.vbe_signature, "VBE2", 4);
- + memcpy(par->vbe_ib.vbe_signature, "VBE2", 4);
- err = uvesafb_exec(task);
- if (err || (task->t.regs.eax & 0xffff) != 0x004f) {
- @@ -1868,7 +1868,7 @@ static ssize_t v86d_show(struct device_driver *dev, char *buf)
- static ssize_t v86d_store(struct device_driver *dev, const char *buf,
- size_t count)
- {
- - strncpy(v86d_path, buf, PATH_MAX);
- + strscpy(v86d_path, buf, PATH_MAX);
- return count;
- }
- static DRIVER_ATTR_RW(v86d);
- diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
- index 2e8f90f96540..5fa5a92500b2 100644
- --- a/fs/ceph/mds_client.c
- +++ b/fs/ceph/mds_client.c
- @@ -3617,8 +3617,8 @@ int ceph_mdsc_init(struct ceph_fs_client *fsc)
- init_rwsem(&mdsc->pool_perm_rwsem);
- mdsc->pool_perm_tree = RB_ROOT;
- - strncpy(mdsc->nodename, utsname()->nodename,
- - sizeof(mdsc->nodename) - 1);
- + strscpy(mdsc->nodename, utsname()->nodename,
- + sizeof(mdsc->nodename));
- return 0;
- }
- diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c
- index a6ef088e057b..8032417bf85c 100644
- --- a/fs/cifs/cifsencrypt.c
- +++ b/fs/cifs/cifsencrypt.c
- @@ -294,7 +294,7 @@ int calc_lanman_hash(const char *password, const char *cryptkey, bool encrypt,
- char password_with_pad[CIFS_ENCPWD_SIZE] = {0};
- if (password)
- - strncpy(password_with_pad, password, CIFS_ENCPWD_SIZE);
- + strscpy(password_with_pad, password, CIFS_ENCPWD_SIZE);
- if (!encrypt && global_secflags & CIFSSEC_MAY_PLNTXT) {
- memcpy(lnm_session_key, password_with_pad,
- diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
- index 3241475a1733..3e3669a377f5 100644
- --- a/fs/ext4/ext4.h
- +++ b/fs/ext4/ext4.h
- @@ -1274,13 +1274,13 @@ struct ext4_super_block {
- __le32 s_first_error_time; /* first time an error happened */
- __le32 s_first_error_ino; /* inode involved in first error */
- __le64 s_first_error_block; /* block involved of first error */
- - __u8 s_first_error_func[32]; /* function where the error happened */
- + char s_first_error_func[32] __nonstring; /* function where the error happened */
- __le32 s_first_error_line; /* line number where error happened */
- __le32 s_last_error_time; /* most recent time of an error */
- __le32 s_last_error_ino; /* inode involved in last error */
- __le32 s_last_error_line; /* line number where error happened */
- __le64 s_last_error_block; /* block involved of last error */
- - __u8 s_last_error_func[32]; /* function where the error happened */
- + char s_last_error_func[32] __nonstring; /* function where the error happened */
- #define EXT4_S_ERR_END offsetof(struct ext4_super_block, s_mount_opts)
- __u8 s_mount_opts[64];
- __le32 s_usr_quota_inum; /* inode for tracking user quota */
- diff --git a/fs/hfsplus/xattr.c b/fs/hfsplus/xattr.c
- index e538b758c448..7e062ffb93e0 100644
- --- a/fs/hfsplus/xattr.c
- +++ b/fs/hfsplus/xattr.c
- @@ -407,7 +407,7 @@ static int name_len(const char *xattr_name, int xattr_name_len)
- return len;
- }
- -static int copy_name(char *buffer, const char *xattr_name, int name_len)
- +static int copy_name(char __attribute__((nonstring)) *buffer, const char *xattr_name, int name_len)
- {
- int len = name_len;
- int offset = 0;
- diff --git a/fs/xfs/xfs_xattr.c b/fs/xfs/xfs_xattr.c
- index 0594db435972..bccc42a5ad85 100644
- --- a/fs/xfs/xfs_xattr.c
- +++ b/fs/xfs/xfs_xattr.c
- @@ -170,9 +170,6 @@ xfs_xattr_put_listent(
- int namelen,
- int valuelen)
- {
- - char *prefix;
- - int prefix_len;
- -
- ASSERT(context->count >= 0);
- if (flags & XFS_ATTR_ROOT) {
- @@ -203,19 +200,18 @@ xfs_xattr_put_listent(
- if (!capable(CAP_SYS_ADMIN))
- return;
- - prefix = XATTR_TRUSTED_PREFIX;
- - prefix_len = XATTR_TRUSTED_PREFIX_LEN;
- + __xfs_xattr_put_listent(context, XATTR_TRUSTED_PREFIX,
- + XATTR_TRUSTED_PREFIX_LEN,
- + name, namelen);
- } else if (flags & XFS_ATTR_SECURE) {
- - prefix = XATTR_SECURITY_PREFIX;
- - prefix_len = XATTR_SECURITY_PREFIX_LEN;
- + __xfs_xattr_put_listent(context, XATTR_SECURITY_PREFIX,
- + XATTR_SECURITY_PREFIX_LEN,
- + name, namelen);
- } else {
- - prefix = XATTR_USER_PREFIX;
- - prefix_len = XATTR_USER_PREFIX_LEN;
- + __xfs_xattr_put_listent(context, XATTR_SECURITY_PREFIX,
- + XATTR_SECURITY_PREFIX_LEN,
- + name, namelen);
- }
- -
- - __xfs_xattr_put_listent(context, prefix, prefix_len, name,
- - namelen);
- - return;
- }
- ssize_t
- diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h
- index d271ff23984f..14c7f6f32d4c 100644
- --- a/include/linux/hdmi.h
- +++ b/include/linux/hdmi.h
- @@ -185,8 +185,8 @@ struct hdmi_spd_infoframe {
- enum hdmi_infoframe_type type;
- unsigned char version;
- unsigned char length;
- - char vendor[8];
- - char product[16];
- + char vendor[8] __nonstring;
- + char product[16] __nonstring;
- enum hdmi_spd_sdi sdi;
- };
- diff --git a/include/linux/isdnif.h b/include/linux/isdnif.h
- index 8d80fdc68647..3fe8991d6df8 100644
- --- a/include/linux/isdnif.h
- +++ b/include/linux/isdnif.h
- @@ -13,7 +13,6 @@
- #ifndef __ISDNIF_H__
- #define __ISDNIF_H__
- -
- #include <linux/skbuff.h>
- #include <uapi/linux/isdnif.h>
- @@ -358,7 +357,7 @@ typedef struct {
- __u32 PLCI;
- __u32 NCCI;
- } adr;
- - __u8 para[MAX_CAPI_PARA_LEN];
- + char para[MAX_CAPI_PARA_LEN] __nonstring;
- } capi_msg;
- /*
- diff --git a/include/linux/nvme.h b/include/linux/nvme.h
- index 4112e2bd747f..5b4c3ced5cac 100644
- --- a/include/linux/nvme.h
- +++ b/include/linux/nvme.h
- @@ -203,7 +203,7 @@ struct nvme_id_ctrl {
- __le16 ssvid;
- char sn[20];
- char mn[40];
- - char fr[8];
- + char fr[8] __nonstring;
- __u8 rab;
- __u8 ieee[3];
- __u8 cmic;
- diff --git a/include/scsi/fc_encode.h b/include/scsi/fc_encode.h
- index 35fd4744f3e9..818cbc6c0abf 100644
- --- a/include/scsi/fc_encode.h
- +++ b/include/scsi/fc_encode.h
- @@ -272,7 +272,7 @@ static inline int fc_ct_ms_fill(struct fc_lport *lport,
- put_unaligned_be16(FC_FDMI_HBA_ATTR_MANUFACTURER,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- - strncpy((char *)&entry->value,
- + strscpy((char *)&entry->value,
- fc_host_manufacturer(lport->host),
- FC_FDMI_HBA_ATTR_MANUFACTURER_LEN);
- @@ -284,7 +284,7 @@ static inline int fc_ct_ms_fill(struct fc_lport *lport,
- put_unaligned_be16(FC_FDMI_HBA_ATTR_SERIALNUMBER,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- - strncpy((char *)&entry->value,
- + strscpy((char *)&entry->value,
- fc_host_serial_number(lport->host),
- FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN);
- diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
- index 0032a7efcbed..08130f5e600b 100644
- --- a/include/scsi/libsas.h
- +++ b/include/scsi/libsas.h
- @@ -578,7 +578,7 @@ enum task_attribute {
- struct sas_ssp_task {
- u8 retry_count; /* hardware retry, should be > 0 */
- - u8 LUN[8];
- + char LUN[8] __nonstring;
- u8 enable_first_burst:1;
- enum task_attribute task_attr;
- u8 task_prio;
- diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h
- index d8c33298c153..f3bfde70834d 100644
- --- a/include/trace/events/rcu.h
- +++ b/include/trace/events/rcu.h
- @@ -691,7 +691,7 @@ TRACE_EVENT(rcu_torture_read,
- ),
- TP_fast_assign(
- - strncpy(__entry->rcutorturename, rcutorturename,
- + strscpy(__entry->rcutorturename, rcutorturename,
- RCUTORTURENAME_LEN);
- __entry->rcutorturename[RCUTORTURENAME_LEN - 1] = 0;
- __entry->rhp = rhp;
- diff --git a/include/trace/events/wbt.h b/include/trace/events/wbt.h
- index b048694070e2..55fbc3c292d5 100644
- --- a/include/trace/events/wbt.h
- +++ b/include/trace/events/wbt.h
- @@ -33,7 +33,7 @@ TRACE_EVENT(wbt_stat,
- ),
- TP_fast_assign(
- - strncpy(__entry->name, dev_name(bdi->dev), 32);
- + strscpy(__entry->name, dev_name(bdi->dev), 32);
- __entry->rmean = stat[0].mean;
- __entry->rmin = stat[0].min;
- __entry->rmax = stat[0].max;
- @@ -67,7 +67,7 @@ TRACE_EVENT(wbt_lat,
- ),
- TP_fast_assign(
- - strncpy(__entry->name, dev_name(bdi->dev), 32);
- + strscpy(__entry->name, dev_name(bdi->dev), 32);
- __entry->lat = div_u64(lat, 1000);
- ),
- @@ -103,7 +103,7 @@ TRACE_EVENT(wbt_step,
- ),
- TP_fast_assign(
- - strncpy(__entry->name, dev_name(bdi->dev), 32);
- + strscpy(__entry->name, dev_name(bdi->dev), 32);
- __entry->msg = msg;
- __entry->step = step;
- __entry->window = div_u64(window, 1000);
- @@ -138,7 +138,7 @@ TRACE_EVENT(wbt_timer,
- ),
- TP_fast_assign(
- - strncpy(__entry->name, dev_name(bdi->dev), 32);
- + strscpy(__entry->name, dev_name(bdi->dev), 32);
- __entry->status = status;
- __entry->step = step;
- __entry->inflight = inflight;
- diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h
- index 32db72c7c055..dd7ddea7eab1 100644
- --- a/include/trace/events/writeback.h
- +++ b/include/trace/events/writeback.h
- @@ -66,7 +66,7 @@ TRACE_EVENT(writeback_dirty_page,
- ),
- TP_fast_assign(
- - strncpy(__entry->name,
- + strscpy(__entry->name,
- mapping ? dev_name(inode_to_bdi(mapping->host)->dev) : "(unknown)", 32);
- __entry->ino = mapping ? mapping->host->i_ino : 0;
- __entry->index = page->index;
- @@ -96,7 +96,7 @@ DECLARE_EVENT_CLASS(writeback_dirty_inode_template,
- struct backing_dev_info *bdi = inode_to_bdi(inode);
- /* may be called for files on pseudo FSes w/ unregistered bdi */
- - strncpy(__entry->name,
- + strscpy(__entry->name,
- bdi->dev ? dev_name(bdi->dev) : "(unknown)", 32);
- __entry->ino = inode->i_ino;
- __entry->state = inode->i_state;
- @@ -176,7 +176,7 @@ DECLARE_EVENT_CLASS(writeback_write_inode_template,
- ),
- TP_fast_assign(
- - strncpy(__entry->name,
- + strscpy(__entry->name,
- dev_name(inode_to_bdi(inode)->dev), 32);
- __entry->ino = inode->i_ino;
- __entry->sync_mode = wbc->sync_mode;
- @@ -220,7 +220,7 @@ DECLARE_EVENT_CLASS(writeback_work_class,
- __field(unsigned int, cgroup_ino)
- ),
- TP_fast_assign(
- - strncpy(__entry->name,
- + strscpy(__entry->name,
- wb->bdi->dev ? dev_name(wb->bdi->dev) : "(unknown)", 32);
- __entry->nr_pages = work->nr_pages;
- __entry->sb_dev = work->sb ? work->sb->s_dev : 0;
- @@ -274,7 +274,7 @@ DECLARE_EVENT_CLASS(writeback_class,
- __field(unsigned int, cgroup_ino)
- ),
- TP_fast_assign(
- - strncpy(__entry->name, dev_name(wb->bdi->dev), 32);
- + strscpy(__entry->name, dev_name(wb->bdi->dev), 32);
- __entry->cgroup_ino = __trace_wb_assign_cgroup(wb);
- ),
- TP_printk("bdi %s: cgroup_ino=%u",
- @@ -296,7 +296,7 @@ TRACE_EVENT(writeback_bdi_register,
- __array(char, name, 32)
- ),
- TP_fast_assign(
- - strncpy(__entry->name, dev_name(bdi->dev), 32);
- + strscpy(__entry->name, dev_name(bdi->dev), 32);
- ),
- TP_printk("bdi %s",
- __entry->name
- @@ -321,7 +321,7 @@ DECLARE_EVENT_CLASS(wbc_class,
- ),
- TP_fast_assign(
- - strncpy(__entry->name, dev_name(bdi->dev), 32);
- + strscpy(__entry->name, dev_name(bdi->dev), 32);
- __entry->nr_to_write = wbc->nr_to_write;
- __entry->pages_skipped = wbc->pages_skipped;
- __entry->sync_mode = wbc->sync_mode;
- @@ -372,7 +372,7 @@ TRACE_EVENT(writeback_queue_io,
- ),
- TP_fast_assign(
- unsigned long *older_than_this = work->older_than_this;
- - strncpy(__entry->name, dev_name(wb->bdi->dev), 32);
- + strscpy(__entry->name, dev_name(wb->bdi->dev), 32);
- __entry->older = older_than_this ? *older_than_this : 0;
- __entry->age = older_than_this ?
- (jiffies - *older_than_this) * 1000 / HZ : -1;
- @@ -583,7 +583,7 @@ TRACE_EVENT(writeback_sb_inodes_requeue,
- ),
- TP_fast_assign(
- - strncpy(__entry->name,
- + strscpy(__entry->name,
- dev_name(inode_to_bdi(inode)->dev), 32);
- __entry->ino = inode->i_ino;
- __entry->state = inode->i_state;
- @@ -657,7 +657,7 @@ DECLARE_EVENT_CLASS(writeback_single_inode_template,
- ),
- TP_fast_assign(
- - strncpy(__entry->name,
- + strscpy(__entry->name,
- dev_name(inode_to_bdi(inode)->dev), 32);
- __entry->ino = inode->i_ino;
- __entry->state = inode->i_state;
- diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h
- index 14c44ec8b622..d2174c087817 100644
- --- a/include/uapi/linux/dm-ioctl.h
- +++ b/include/uapi/linux/dm-ioctl.h
- @@ -167,7 +167,7 @@ struct dm_target_spec {
- */
- __u32 next;
- - char target_type[DM_MAX_TYPE_NAME];
- + char target_type[DM_MAX_TYPE_NAME] __nonstring;
- /*
- * Parameter string starts immediately after this object.
- diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c
- index ed5d34925ad0..2dd88f40722a 100644
- --- a/kernel/debug/kdb/kdb_io.c
- +++ b/kernel/debug/kdb/kdb_io.c
- @@ -443,7 +443,7 @@ static char *kdb_read(char *buffer, size_t bufsize)
- char *kdb_getstr(char *buffer, size_t bufsize, const char *prompt)
- {
- if (prompt && kdb_prompt_str != prompt)
- - strncpy(kdb_prompt_str, prompt, CMD_BUFLEN);
- + strncpy(kdb_prompt_str, prompt, CMD_BUFLEN - 1);
- kdb_printf(kdb_prompt_str);
- kdb_nextline = 1; /* Prompt and input resets line number */
- return kdb_read(buffer, bufsize);
- diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
- index e405677ee08d..17c995d72837 100644
- --- a/kernel/debug/kdb/kdb_main.c
- +++ b/kernel/debug/kdb/kdb_main.c
- @@ -1103,12 +1103,12 @@ static int handle_ctrl_cmd(char *cmd)
- case CTRL_P:
- if (cmdptr != cmd_tail)
- cmdptr = (cmdptr-1) % KDB_CMD_HISTORY_COUNT;
- - strncpy(cmd_cur, cmd_hist[cmdptr], CMD_BUFLEN);
- + strscpy(cmd_cur, cmd_hist[cmdptr], CMD_BUFLEN);
- return 1;
- case CTRL_N:
- if (cmdptr != cmd_head)
- cmdptr = (cmdptr+1) % KDB_CMD_HISTORY_COUNT;
- - strncpy(cmd_cur, cmd_hist[cmdptr], CMD_BUFLEN);
- + strscpy(cmd_cur, cmd_hist[cmdptr], CMD_BUFLEN);
- return 1;
- }
- return 0;
- @@ -1315,17 +1315,15 @@ static int kdb_local(kdb_reason_t reason, int error, struct pt_regs *regs,
- if (*cmdbuf != '\n') {
- if (*cmdbuf < 32) {
- if (cmdptr == cmd_head) {
- - strncpy(cmd_hist[cmd_head], cmd_cur,
- + strscpy(cmd_hist[cmd_head], cmd_cur,
- CMD_BUFLEN);
- - *(cmd_hist[cmd_head] +
- - strlen(cmd_hist[cmd_head])-1) = '\0';
- }
- if (!handle_ctrl_cmd(cmdbuf))
- *(cmd_cur+strlen(cmd_cur)-1) = '\0';
- cmdbuf = cmd_cur;
- goto do_full_getstr;
- } else {
- - strncpy(cmd_hist[cmd_head], cmd_cur,
- + strscpy(cmd_hist[cmd_head], cmd_cur,
- CMD_BUFLEN);
- }
- diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
- index 987d9a9ae283..67bc12da1cf5 100644
- --- a/kernel/trace/blktrace.c
- +++ b/kernel/trace/blktrace.c
- @@ -494,7 +494,7 @@ static int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
- if (!buts->buf_size || !buts->buf_nr)
- return -EINVAL;
- - strncpy(buts->name, name, BLKTRACE_BDEV_SIZE);
- + strscpy(buts->name, name, BLKTRACE_BDEV_SIZE);
- buts->name[BLKTRACE_BDEV_SIZE - 1] = '\0';
- /*
- diff --git a/lib/test_hexdump.c b/lib/test_hexdump.c
- index 427632ff19d2..e54ce8f85d0e 100644
- --- a/lib/test_hexdump.c
- +++ b/lib/test_hexdump.c
- @@ -95,7 +95,7 @@ static void __init test_hexdump_prepare_test(size_t len, int rowsize,
- *p++ = ' ';
- } while (p < test + rs * 2 + rs / gs + 1);
- - strncpy(p, data_a, l);
- + strscpy(p, data_a, l);
- p += l;
- }
- diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
- index 1036e4fa1ea2..d56c964b98ad 100644
- --- a/net/bluetooth/hidp/core.c
- +++ b/net/bluetooth/hidp/core.c
- @@ -775,7 +775,7 @@ static int hidp_setup_hid(struct hidp_session *session,
- hid->version = req->version;
- hid->country = req->country;
- - strncpy(hid->name, req->name, sizeof(req->name) - 1);
- + strscpy(hid->name, req->name, sizeof(hid->name));
- snprintf(hid->phys, sizeof(hid->phys), "%pMR",
- &l2cap_pi(session->ctrl_sock->sk)->chan->src);
- diff --git a/net/core/pktgen.c b/net/core/pktgen.c
- index b8ab5c829511..4d911b9c5f48 100644
- --- a/net/core/pktgen.c
- +++ b/net/core/pktgen.c
- @@ -1264,7 +1264,7 @@ static ssize_t pktgen_if_write(struct file *file,
- buf[len] = 0;
- if (strcmp(buf, pkt_dev->dst_min) != 0) {
- memset(pkt_dev->dst_min, 0, sizeof(pkt_dev->dst_min));
- - strncpy(pkt_dev->dst_min, buf, len);
- + strscpy(pkt_dev->dst_min, buf, len);
- pkt_dev->daddr_min = in_aton(pkt_dev->dst_min);
- pkt_dev->cur_daddr = pkt_dev->daddr_min;
- }
- @@ -1286,7 +1286,7 @@ static ssize_t pktgen_if_write(struct file *file,
- buf[len] = 0;
- if (strcmp(buf, pkt_dev->dst_max) != 0) {
- memset(pkt_dev->dst_max, 0, sizeof(pkt_dev->dst_max));
- - strncpy(pkt_dev->dst_max, buf, len);
- + strscpy(pkt_dev->dst_max, buf, len);
- pkt_dev->daddr_max = in_aton(pkt_dev->dst_max);
- pkt_dev->cur_daddr = pkt_dev->daddr_max;
- }
- @@ -1395,7 +1395,7 @@ static ssize_t pktgen_if_write(struct file *file,
- buf[len] = 0;
- if (strcmp(buf, pkt_dev->src_min) != 0) {
- memset(pkt_dev->src_min, 0, sizeof(pkt_dev->src_min));
- - strncpy(pkt_dev->src_min, buf, len);
- + strscpy(pkt_dev->src_min, buf, len);
- pkt_dev->saddr_min = in_aton(pkt_dev->src_min);
- pkt_dev->cur_saddr = pkt_dev->saddr_min;
- }
- @@ -1415,7 +1415,7 @@ static ssize_t pktgen_if_write(struct file *file,
- buf[len] = 0;
- if (strcmp(buf, pkt_dev->src_max) != 0) {
- memset(pkt_dev->src_max, 0, sizeof(pkt_dev->src_max));
- - strncpy(pkt_dev->src_max, buf, len);
- + strscpy(pkt_dev->src_max, buf, len);
- pkt_dev->saddr_max = in_aton(pkt_dev->src_max);
- pkt_dev->cur_saddr = pkt_dev->saddr_max;
- }
- diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c
- index d786a8441bce..30f9cb9bc72b 100644
- --- a/net/ipv4/ip_tunnel.c
- +++ b/net/ipv4/ip_tunnel.c
- @@ -261,7 +261,7 @@ static struct net_device *__ip_tunnel_create(struct net *net,
- goto failed;
- }
- strlcpy(name, ops->kind, IFNAMSIZ);
- - strncat(name, "%d", 2);
- + strlcat(name, "%d", IFNAMSIZ);
- }
- ASSERT_RTNL();
- diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
- index 975a85a48d39..74ab9036d3ab 100644
- --- a/net/netfilter/ipset/ip_set_core.c
- +++ b/net/netfilter/ipset/ip_set_core.c
- @@ -1167,7 +1167,7 @@ static int ip_set_rename(struct net *net, struct sock *ctnl,
- goto out;
- }
- }
- - strncpy(set->name, name2, IPSET_MAXNAMELEN);
- + strscpy(set->name, name2, IPSET_MAXNAMELEN);
- out:
- read_unlock_bh(&ip_set_ref_lock);
- diff --git a/net/netfilter/nfnetlink_acct.c b/net/netfilter/nfnetlink_acct.c
- index 88d427f9f9e6..4a2df6f91177 100644
- --- a/net/netfilter/nfnetlink_acct.c
- +++ b/net/netfilter/nfnetlink_acct.c
- @@ -115,7 +115,7 @@ static int nfnl_acct_new(struct net *net, struct sock *nfnl,
- nfacct->flags = flags;
- }
- - strncpy(nfacct->name, nla_data(tb[NFACCT_NAME]), NFACCT_NAME_MAX);
- + strscpy(nfacct->name, nla_data(tb[NFACCT_NAME]), NFACCT_NAME_MAX);
- if (tb[NFACCT_BYTES]) {
- atomic64_set(&nfacct->bytes,
- diff --git a/net/netfilter/nfnetlink_cthelper.c b/net/netfilter/nfnetlink_cthelper.c
- index d33ce6d5ebce..e42d1f2abe51 100644
- --- a/net/netfilter/nfnetlink_cthelper.c
- +++ b/net/netfilter/nfnetlink_cthelper.c
- @@ -234,7 +234,7 @@ nfnl_cthelper_create(const struct nlattr * const tb[],
- if (ret < 0)
- goto err1;
- - strncpy(helper->name, nla_data(tb[NFCTH_NAME]), NF_CT_HELPER_NAME_LEN);
- + strscpy(helper->name, nla_data(tb[NFCTH_NAME]), NF_CT_HELPER_NAME_LEN);
- size = ntohl(nla_get_be32(tb[NFCTH_PRIV_DATA_LEN]));
- if (size > FIELD_SIZEOF(struct nf_conn_help, data)) {
- ret = -ENOMEM;
- diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c
- index f3d2e83313e1..284fb3f46693 100644
- --- a/net/tipc/bearer.c
- +++ b/net/tipc/bearer.c
- @@ -136,10 +136,7 @@ static int bearer_name_validate(const char *name,
- u32 if_len;
- /* copy bearer name & ensure length is OK */
- - name_copy[TIPC_MAX_BEARER_NAME - 1] = 0;
- - /* need above in case non-Posix strncpy() doesn't pad with nulls */
- - strncpy(name_copy, name, TIPC_MAX_BEARER_NAME);
- - if (name_copy[TIPC_MAX_BEARER_NAME - 1] != 0)
- + if (strscpy(name_copy, name, TIPC_MAX_BEARER_NAME) < 0)
- return 0;
- /* ensure all component parts of bearer name are present */
- diff --git a/net/tipc/topsrv.c b/net/tipc/topsrv.c
- index c8e34ef22c30..735149ae75fc 100644
- --- a/net/tipc/topsrv.c
- +++ b/net/tipc/topsrv.c
- @@ -657,7 +657,7 @@ int tipc_topsrv_start(struct net *net)
- srv->max_rcvbuf_size = sizeof(struct tipc_subscr);
- INIT_WORK(&srv->awork, tipc_topsrv_accept);
- - strncpy(srv->name, name, strlen(name) + 1);
- + strscpy(srv->name, name, sizeof(srv->name));
- tn->topsrv = srv;
- atomic_set(&tn->subscription_count, 0);
- diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
- index 754971d95b8d..d95bb48154d2 100644
- --- a/security/selinux/hooks.c
- +++ b/security/selinux/hooks.c
- @@ -6481,7 +6481,7 @@ static int selinux_ib_endport_manage_subnet(void *ib_sec, const char *dev_name,
- return err;
- ad.type = LSM_AUDIT_DATA_IBENDPORT;
- - strncpy(ibendport.dev_name, dev_name, sizeof(ibendport.dev_name));
- + strscpy(ibendport.dev_name, dev_name, sizeof(ibendport.dev_name));
- ibendport.port = port_num;
- ad.u.ibendport = &ibendport;
- return avc_has_perm(sec->sid, sid,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement