]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] drivers/* strlcpy conversions
authorBen Collins <bcollins@debian.org>
Mon, 26 May 2003 02:58:37 +0000 (19:58 -0700)
committerBen Collins <bcollins@debian.org>
Mon, 26 May 2003 02:58:37 +0000 (19:58 -0700)
Well, this is it for me and strlcpy. I'll leave the rest of the
non-obvious usages of strncpy to the kernel janitors. Seems like quite a
few uses really wanted memcpy instead, but I don't have time to
investigate them all. It does appear that nearly all strncpy's will be
removable. Obsoleting strncpy will probably atleast make the remaining
few think about how they are using it.

This is the patch for my trip through drivers/*.

105 files changed:
drivers/acpi/scan.c
drivers/acpi/toshiba_acpi.c
drivers/block/genhd.c
drivers/block/loop.c
drivers/char/ftape/zftape/zftape-vtbl.h
drivers/char/i8k.c
drivers/char/rio/rioinit.c
drivers/eisa/eisa-bus.c
drivers/hotplug/pci_hotplug_core.c
drivers/i2c/chips/adm1021.c
drivers/i2c/chips/it87.c
drivers/i2c/chips/lm75.c
drivers/i2c/chips/w83781d.c
drivers/i2c/i2c-core.c
drivers/ide/ide-probe.c
drivers/ide/ide-proc.c
drivers/ide/ide.c
drivers/input/misc/uinput.c
drivers/isdn/act2000/module.c
drivers/isdn/capi/capi.c
drivers/isdn/capi/capifs.c
drivers/isdn/capi/kcapi.c
drivers/isdn/eicon/eicon_idi.c
drivers/isdn/eicon/eicon_mod.c
drivers/isdn/hardware/avm/avm_cs.c
drivers/isdn/hardware/avm/b1.c
drivers/isdn/hardware/avm/b1dma.c
drivers/isdn/hardware/eicon/capifunc.c
drivers/isdn/hardware/eicon/divasfunc.c
drivers/isdn/hardware/eicon/i4l_idi.c
drivers/isdn/hardware/eicon/um_idi.c
drivers/isdn/hisax/avma1_cs.c
drivers/isdn/hisax/callc.c
drivers/isdn/i4l/isdn_net_lib.c
drivers/isdn/i4l/isdn_ppp.c
drivers/isdn/icn/icn.c
drivers/isdn/isdnloop/isdnloop.c
drivers/mca/mca-legacy.c
drivers/md/dm-ioctl.c
drivers/media/common/saa7146_fops.c
drivers/media/common/saa7146_video.c
drivers/media/video/adv7175.c
drivers/media/video/bt819.c
drivers/media/video/bt856.c
drivers/media/video/bttv-driver.c
drivers/media/video/saa5249.c
drivers/media/video/saa7110.c
drivers/media/video/saa7111.c
drivers/media/video/saa7134/saa7134-oss.c
drivers/media/video/saa7134/saa7134-ts.c
drivers/media/video/saa7134/saa7134-video.c
drivers/media/video/saa7185.c
drivers/media/video/tuner.c
drivers/media/video/tvmixer.c
drivers/media/video/v4l2-common.c
drivers/media/video/zr36067.c
drivers/message/fusion/mptctl.c
drivers/mtd/chips/jedec.c
drivers/mtd/cmdline.c
drivers/parisc/ccio-dma.c
drivers/parisc/led.c
drivers/pci/pool.c
drivers/pcmcia/cs.c
drivers/pcmcia/ds.c
drivers/pcmcia/i82092.c
drivers/pcmcia/i82365.c
drivers/pcmcia/pci_socket.c
drivers/pcmcia/tcic.c
drivers/pnp/core.c
drivers/s390/cio/css.c
drivers/s390/net/ctcmain.c
drivers/s390/net/cu3088.c
drivers/s390/net/fsm.c
drivers/scsi/NCR_D700.c
drivers/scsi/aacraid/aachba.c
drivers/scsi/eata_pio.c
drivers/scsi/gdth.c
drivers/scsi/in2000.c
drivers/scsi/ncr53c8xx.c
drivers/scsi/osst.c
drivers/scsi/sim710.c
drivers/scsi/sym53c8xx.c
drivers/scsi/sym53c8xx_2/sym_glue.c
drivers/usb/gadget/zero.c
drivers/usb/misc/brlvger.c
drivers/usb/net/kaweth.c
drivers/usb/net/pegasus.c
drivers/video/aty/atyfb_base.c
drivers/video/bw2.c
drivers/video/cg14.c
drivers/video/cg3.c
drivers/video/cirrusfb.c
drivers/video/console/sticore.c
drivers/video/cyber2000fb.c
drivers/video/ffb.c
drivers/video/leo.c
drivers/video/matrox/matroxfb_base.c
drivers/video/p9100.c
drivers/video/pm2fb.c
drivers/video/pm3fb.c
drivers/video/radeonfb.c
drivers/video/retz3fb.c
drivers/video/sstfb.c
drivers/video/tcx.c
drivers/video/tgafb.c

index ec8313fa549a4ac3295ca20280b3b220897161b0..374ef67221281e086707733ac9e2d6f4d39665ad 100644 (file)
@@ -66,7 +66,7 @@ static void acpi_device_register(struct acpi_device * device, struct acpi_device
        spin_unlock(&acpi_device_lock);
 
        kobject_init(&device->kobj);
-       strncpy(device->kobj.name,device->pnp.bus_id,KOBJ_NAME_LEN);
+       strlcpy(device->kobj.name,device->pnp.bus_id,KOBJ_NAME_LEN);
        if (parent)
                device->kobj.parent = &parent->kobj;
        device->kobj.ktype = &ktype_acpi_ns;
index 0cb16126e317b74309ca85a7ac0a1cda7f2a0dc5..20acd4275cf3479a63a55fcf2dd049943c70fba1 100644 (file)
@@ -108,8 +108,7 @@ snscanf(const char* str, int n, const char* format, ...)
        int result;
        char* str2 = kmalloc(n + 1, GFP_KERNEL);
        if (str2 == 0) return 0;
-       strncpy(str2, str, n);
-       str2[n] = 0;
+       strlcpy(str2, str, n);
        va_start(args, format);
        result = vsscanf(str2, format, args);
        va_end(args);
index ebfecee2f69e5548842f41aae224d307a508d05a..01dd879bc93b46157608d7dc120db294bb544a07 100644 (file)
@@ -89,8 +89,7 @@ int register_blkdev(unsigned int major, const char *name)
        }
 
        p->major = major;
-       strncpy(p->name, name, sizeof(p->name)-1);
-       p->name[sizeof(p->name)-1] = 0;
+       strlcpy(p->name, name, sizeof(p->name));
        p->next = 0;
        index = major_to_index(major);
 
index 399ce9b37d446a555df2e55730bb049b19c68861..f52f1d623a64a618756e5418f2f98f822db650f0 100644 (file)
@@ -867,7 +867,7 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info)
        if (err)
                return err;     
 
-       strncpy(lo->lo_name, info->lo_name, LO_NAME_SIZE);
+       strlcpy(lo->lo_name, info->lo_name, LO_NAME_SIZE);
 
        lo->transfer = xfer_funcs[type]->transfer;
        lo->ioctl = xfer_funcs[type]->ioctl;
@@ -902,7 +902,7 @@ loop_get_status(struct loop_device *lo, struct loop_info64 *info)
        info->lo_rdevice = lo->lo_device ? stat.rdev : stat.dev;
        info->lo_offset = lo->lo_offset;
        info->lo_flags = lo->lo_flags;
-       strncpy(info->lo_name, lo->lo_name, LO_NAME_SIZE);
+       strlcpy(info->lo_name, lo->lo_name, LO_NAME_SIZE);
        info->lo_encrypt_type = lo->lo_encrypt_type;
        if (lo->lo_encrypt_key_size && capable(CAP_SYS_ADMIN)) {
                info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
index efc3ffb9f368e7359419918bb60f0be9fb8e3dc2..08e93d724fbcaaac516fe627550b72df36878b33 100644 (file)
@@ -129,8 +129,7 @@ extern struct list_head zft_vtbl;
 #define DUMP_VOLINFO(level, desc, info)                                        \
 {                                                                      \
        char tmp[21];                                                   \
-       strncpy(tmp, desc, 20);                                         \
-       tmp[20] = '\0';                                                 \
+       strlcpy(tmp, desc, sizeof(tmp));                                \
        TRACE(level, "Volume %d:\n"                                     \
              KERN_INFO "description  : %s\n"                           \
              KERN_INFO "first segment: %d\n"                           \
index af5a35229cff8a8a7e6cc06a8bb849cf83611bbd..e35a7a2453acef1866e4e6f71d94707f8df9219d 100644 (file)
@@ -167,7 +167,7 @@ static int i8k_get_bios_version(void)
  */
 static int i8k_get_serial_number(unsigned char *buff)
 {
-    strncpy(buff, serial_number, 16);
+    strlcpy(buff, serial_number, sizeof(serial_number));
     return 0;
 }
 
@@ -551,24 +551,24 @@ static void __init dmi_decode(DMIHeader *dmi)
     case  0:   /* BIOS Information */
        p = dmi_string(dmi,data[5]);
        if (*p) {
-           strncpy(bios_version, p, sizeof(bios_version));
+           strlcpy(bios_version, p, sizeof(bios_version));
            string_trim(bios_version, sizeof(bios_version));
        }
        break;  
     case 1:    /* System Information */
        p = dmi_string(dmi,data[4]);
        if (*p) {
-           strncpy(system_vendor, p, sizeof(system_vendor));
+           strlcpy(system_vendor, p, sizeof(system_vendor));
            string_trim(system_vendor, sizeof(system_vendor));
        }
        p = dmi_string(dmi,data[5]);
        if (*p) {
-           strncpy(product_name, p, sizeof(product_name));
+           strlcpy(product_name, p, sizeof(product_name));
            string_trim(product_name, sizeof(product_name));
        }
        p = dmi_string(dmi,data[7]);
        if (*p) {
-           strncpy(serial_number, p, sizeof(serial_number));
+           strlcpy(serial_number, p, sizeof(serial_number));
            string_trim(serial_number, sizeof(serial_number));
        }
        break;
index 446d55d228a5e8fe4784ca8ea14d2cb93a246eba..5712bdef20f83be8acc09bf57b06a73e9e4a5599 100644 (file)
@@ -1541,8 +1541,10 @@ static struct rioVersion stVersion;
 struct rioVersion *
 RIOVersid(void)
 {
-    strncpy(stVersion.version, "RIO driver for linux V1.0", 255);
-    strncpy(stVersion.buildDate, __DATE__, 255);
+    strlcpy(stVersion.version, "RIO driver for linux V1.0",
+           sizeof(stVersion.version));
+    strlcpy(stVersion.buildDate, __DATE__,
+           sizeof(stVersion.buildDate));
 
     return &stVersion;
 }
index 0c7f32c915f71affcdac7332d0177623ee8862ed..a5241c65d63bba252528b36de3333a23d0015806 100644 (file)
@@ -38,9 +38,9 @@ static void __init eisa_name_device (struct eisa_device *edev)
 
        for (i = 0; i < EISA_INFOS; i++) {
                if (!strcmp (edev->id.sig, eisa_table[i].id.sig)) {
-                       strncpy (edev->dev.name,
+                       strlcpy (edev->dev.name,
                                 eisa_table[i].name,
-                                DEVICE_NAME_SIZE - 1);
+                                DEVICE_NAME_SIZE);
                        return;
                }
        }
index 8f204a62dfd14c1791b56629b8f529d71970a125..9f51a2d3526d5f59072ceb8f2a25347a1eb99626 100644 (file)
@@ -529,7 +529,7 @@ int pci_hp_register (struct hotplug_slot *slot)
        if ((slot->info == NULL) || (slot->ops == NULL))
                return -EINVAL;
 
-       strncpy(slot->kobj.name, slot->name, KOBJ_NAME_LEN);
+       strlcpy(slot->kobj.name, slot->name, KOBJ_NAME_LEN);
        kobj_set_kset_s(slot, hotplug_slots_subsys);
 
        /* this can fail if we have already registered a slot with the same name */
index 2db50c2a2ad4a0e149a27b22228dc6770e9a2e05..aa636bf09dd6d42d7148d128a233f1bb1d560d3c 100644 (file)
@@ -310,7 +310,7 @@ static int adm1021_detect(struct i2c_adapter *adapter, int address, int kind)
        }
 
        /* Fill in the remaining client fields and put it into the global list */
-       strncpy(new_client->dev.name, client_name, DEVICE_NAME_SIZE);
+       strlcpy(new_client->dev.name, client_name, DEVICE_NAME_SIZE);
        data->type = kind;
 
        new_client->id = adm1021_id++;
index 22c6f5364a4d3605a745709c44bafb780d8cb513..8d04da1fbe1a6d901e148f9625665ac056e21c1f 100644 (file)
@@ -692,7 +692,7 @@ int it87_detect(struct i2c_adapter *adapter, int address, int kind)
        }
 
        /* Fill in the remaining client fields and put it into the global list */
-       strncpy(new_client->dev.name, name, DEVICE_NAME_SIZE);
+       strlcpy(new_client->dev.name, name, DEVICE_NAME_SIZE);
 
        data->type = kind;
 
index 1214ab3f4ca5e351ea0f706fec47575fd377f9ce..ab4e4ab23b540ea82dca417208387aeb6665e8ed 100644 (file)
@@ -194,7 +194,7 @@ static int lm75_detect(struct i2c_adapter *adapter, int address, int kind)
        }
 
        /* Fill in the remaining client fields and put it into the global list */
-       strncpy(new_client->dev.name, name, DEVICE_NAME_SIZE);
+       strlcpy(new_client->dev.name, name, DEVICE_NAME_SIZE);
 
        new_client->id = lm75_id++;
        data->valid = 0;
index 5da55f2acdfcc772953d3ad2937fa0879b779b9c..605ac27088c147422ccba11d09e03fda763d51af 100644 (file)
@@ -1198,7 +1198,7 @@ w83781d_detect(struct i2c_adapter *adapter, int address, int kind)
                request_region(address, W83781D_EXTENT, type_name);
 
        /* Fill in the remaining client fields and put it into the global list */
-       strncpy(new_client->dev.name, client_name, DEVICE_NAME_SIZE);
+       strlcpy(new_client->dev.name, client_name, DEVICE_NAME_SIZE);
        data->type = kind;
 
        data->valid = 0;
@@ -1271,7 +1271,7 @@ w83781d_detect(struct i2c_adapter *adapter, int address, int kind)
                        data->lm75[i].adapter = adapter;
                        data->lm75[i].driver = &w83781d_driver;
                        data->lm75[i].flags = 0;
-                       strncpy(data->lm75[i].dev.name, client_name,
+                       strlcpy(data->lm75[i].dev.name, client_name,
                                DEVICE_NAME_SIZE);
                        if (kind == w83783s)
                                break;
index c564775ae388dba94c5746a3b13a90fccdcc94ba..bd805b366771a8e3077fc38822b03fe9687cb2ae 100644 (file)
@@ -105,7 +105,7 @@ int i2c_add_adapter(struct i2c_adapter *adap)
        memset(&adap->class_dev, 0x00, sizeof(struct class_device));
        adap->class_dev.dev = &adap->dev;
        adap->class_dev.class = &i2c_adapter_class;
-       strncpy(adap->class_dev.class_id, adap->dev.bus_id, BUS_ID_SIZE);
+       strlcpy(adap->class_dev.class_id, adap->dev.bus_id, BUS_ID_SIZE);
        class_device_register(&adap->class_dev);
 
        /* inform drivers of new adapters */
index 8034df6b7e15887d8bedd17e4f1d8572073ed592..8ec78e110a45d9a497176ca38602767fe0021f05 100644 (file)
@@ -693,7 +693,7 @@ static void hwif_register (ide_hwif_t *hwif)
        u32 i = 0;
 
        /* register with global device tree */
-       strncpy(hwif->gendev.bus_id,hwif->name,BUS_ID_SIZE);
+       strlcpy(hwif->gendev.bus_id,hwif->name,BUS_ID_SIZE);
        snprintf(hwif->gendev.name,DEVICE_NAME_SIZE,"IDE Controller");
        hwif->gendev.driver_data = hwif;
        if (hwif->pci_dev)
index 2e97b98151287901d37905ec686e9f168754a691..63a6a6aa25f10fff0988c4e7680a282b2aac45b8 100644 (file)
@@ -522,8 +522,7 @@ int proc_ide_write_settings
                        if (*p != ':')
                                goto parse_error;
                        len = IDE_MIN(p - start, MAX_LEN);
-                       strncpy(name, start, IDE_MIN(len, MAX_LEN));
-                       name[len] = 0;
+                       strlcpy(name, start, IDE_MIN(len, MAX_LEN));
 
                        if (n > 0) {
                                --n;
index 142a84ae4507da513d26ae5821739215a374a826..cc1dfb1fa174f3fa0ef9ce22f55772b503b611ff 100644 (file)
@@ -1398,7 +1398,7 @@ int ide_replace_subdriver (ide_drive_t *drive, const char *driver)
                goto abort;
        if (DRIVER(drive)->cleanup(drive))
                goto abort;
-       strncpy(drive->driver_req, driver, 9);
+       strlcpy(drive->driver_req, driver, sizeof(drive->driver_req));
        if (ata_attach(drive)) {
                spin_lock(&drives_lock);
                list_del_init(&drive->list);
@@ -1838,7 +1838,7 @@ int __init ide_setup (char *s)
                hwif = &ide_hwifs[hw];
                drive = &hwif->drives[unit];
                if (strncmp(s + 4, "ide-", 4) == 0) {
-                       strncpy(drive->driver_req, s + 4, 9);
+                       strlcpy(drive->driver_req, s + 4, sizeof(drive->driver_req));
                        goto done;
                }
                /*
index f148be3a96f91c1d87f7ca1230c352b3694bf0cd..2d10fcffdd6a444b0bc70aed74f0d7c39be628d1 100644 (file)
@@ -192,15 +192,14 @@ static int uinput_alloc_device(struct file *file, const char *buffer, size_t cou
        if (NULL != dev->name) 
                kfree(dev->name);
 
-       size = strnlen(user_dev->name, UINPUT_MAX_NAME_SIZE);
-       dev->name = kmalloc(size + 1, GFP_KERNEL);
+       size = strnlen(user_dev->name, UINPUT_MAX_NAME_SIZE) + 1;
+       dev->name = kmalloc(size, GFP_KERNEL);
        if (!dev->name) {
                retval = -ENOMEM;
                goto exit;
        }
 
-       strncpy(dev->name, user_dev->name, size);
-       dev->name[size] = '\0';
+       strlcpy(dev->name, user_dev->name, size);
        dev->id.bustype = user_dev->id.bustype;
        dev->id.vendor  = user_dev->id.vendor;
        dev->id.product = user_dev->id.product;
index 44c43be3828de63d205a7349c61a07f723bf1bc2..75b205033253dbbf3bce199a4fd5386d2d01a382 100644 (file)
@@ -601,7 +601,7 @@ act2000_alloccard(int bus, int port, int irq, char *id)
                ISDN_FEATURE_P_UNKNOWN;
         card->interface.hl_hdrlen = 20;
         card->ptype = ISDN_PTYPE_EURO;
-        strncpy(card->interface.id, id, sizeof(card->interface.id) - 1);
+        strlcpy(card->interface.id, id, sizeof(card->interface.id));
         for (i=0; i<ACT2000_BCH; i++) {
                 card->bch[i].plci = 0x8000;
                 card->bch[i].ncci = 0x8000;
index f8f49f0530bdd6b35919e0598216ddc42e3927d6..483a701ab5a1258394596179f51684e5677104d2 100644 (file)
@@ -1460,8 +1460,7 @@ static int __init capi_init(void)
 
 
        if ((p = strchr(revision, ':')) != 0 && p[1]) {
-               strncpy(rev, p + 2, sizeof(rev));
-               rev[sizeof(rev)-1] = 0;
+               strlcpy(rev, p + 2, sizeof(rev));
                if ((p = strchr(rev, '$')) != 0 && p > rev)
                   *(p-1) = 0;
        } else
index 945357b2c7c41b812182a1d5e9ce006c61d79962..92cf8f59931a91185f3f7baf0c3147185ac1131f 100644 (file)
@@ -234,8 +234,7 @@ static int __init capifs_init(void)
        int err;
 
        if ((p = strchr(revision, ':')) != 0 && p[1]) {
-               strncpy(rev, p + 2, sizeof(rev));
-               rev[sizeof(rev)-1] = 0;
+               strlcpy(rev, p + 2, sizeof(rev));
                if ((p = strchr(rev, '$')) != 0 && p > rev)
                   *(p-1) = 0;
        } else
index a679f52a091202e1900f177e6b74567916b6cb14..c59fe4fc0211b3d1b043ba18a632e2257312a923 100644 (file)
@@ -631,14 +631,14 @@ u16 capi20_get_manufacturer(u32 contr, u8 buf[CAPI_MANUFACTURER_LEN])
        struct capi_ctr *card;
 
        if (contr == 0) {
-               strncpy(buf, capi_manufakturer, CAPI_MANUFACTURER_LEN);
+               strlcpy(buf, capi_manufakturer, sizeof(buf));
                return CAPI_NOERROR;
        }
        card = get_capi_ctr_by_nr(contr);
        if (!card || card->cardstate != CARD_RUNNING) 
                return CAPI_REGNOTINSTALLED;
 
-       strncpy(buf, card->manu, CAPI_MANUFACTURER_LEN);
+       strlcpy(buf, card->manu, sizeof(buf));
        return CAPI_NOERROR;
 }
 
@@ -667,14 +667,14 @@ u16 capi20_get_serial(u32 contr, u8 serial[CAPI_SERIAL_LEN])
        struct capi_ctr *card;
 
        if (contr == 0) {
-               strncpy(serial, driver_serial, CAPI_SERIAL_LEN);
+               strlcpy(serial, driver_serial, sizeof(serial));
                return CAPI_NOERROR;
        }
        card = get_capi_ctr_by_nr(contr);
        if (!card || card->cardstate != CARD_RUNNING) 
                return CAPI_REGNOTINSTALLED;
 
-       strncpy((void *) serial, card->serial, CAPI_SERIAL_LEN);
+       strlcpy((void *) serial, card->serial, sizeof(serial));
        return CAPI_NOERROR;
 }
 
@@ -873,8 +873,7 @@ static int __init kcapi_init(void)
         kcapi_proc_init();
 
        if ((p = strchr(revision, ':')) != 0 && p[1]) {
-               strncpy(rev, p + 2, sizeof(rev));
-               rev[sizeof(rev)-1] = 0;
+               strlcpy(rev, p + 2, sizeof(rev));
                if ((p = strchr(rev, '$')) != 0 && p > rev)
                   *(p-1) = 0;
        } else
index e4458cbbb6dd09a0fe14d7ba976e8e4d56cccd66..4bfce7f8281410de75d86261cf1b580638f43a9a 100644 (file)
@@ -1118,8 +1118,7 @@ idi_fill_in_T30(eicon_chan *chan, unsigned char *buffer)
                //eicon_log(NULL, 128, "sT30:universal_7 = %x\n", t30->universal_7);
                eicon_log(NULL, 128, "sT30:station_id_len = %x\n", t30->station_id_len);
                eicon_log(NULL, 128, "sT30:head_line_len = %x\n", t30->head_line_len);
-               strncpy(st, t30->station_id, t30->station_id_len);
-               st[t30->station_id_len] = 0;
+               strlcpy(st, t30->station_id, t30->station_id_len + 1);
                eicon_log(NULL, 128, "sT30:station_id = <%s>\n", st);
        }
        return(sizeof(eicon_t30_s));
@@ -1195,8 +1194,7 @@ idi_parse_edata(eicon_card *ccard, eicon_chan *chan, unsigned char *buffer, int
                //eicon_log(ccard, 128, "rT30:universal_7 = %x\n", p->universal_7);
                eicon_log(ccard, 128, "rT30:station_id_len = %x\n", p->station_id_len);
                eicon_log(ccard, 128, "rT30:head_line_len = %x\n", p->head_line_len);
-               strncpy(st, p->station_id, p->station_id_len);
-               st[p->station_id_len] = 0;
+               strlcpy(st, p->station_id, p->station_id_len + 1);
                eicon_log(ccard, 128, "rT30:station_id = <%s>\n", st);
        }
        if (!chan->fax) {
index 8c1174bc36cbab9fc07758902fdde32c68add01e..2da6cb8b04fed35a6de4c6778714c9d6d96d1599 100644 (file)
@@ -848,7 +848,7 @@ eicon_alloccard(int Type, int membase, int irq, char *id, int card_id)
                        ISDN_FEATURE_P_UNKNOWN;
                card->interface.hl_hdrlen = 20;
                card->ptype = ISDN_PTYPE_UNKNOWN;
-               strncpy(card->interface.id, id, sizeof(card->interface.id) - 1);
+               strlcpy(card->interface.id, id, sizeof(card->interface.id));
                card->myid = -1;
                card->type = Type;
                switch (Type) {
index 15e0494ae51751b370608ba93348a095ef44a532..d7e10c4653f094d9627a6bea9603ec079c43be90 100644 (file)
@@ -320,7 +320,7 @@ static void avmcs_config(dev_link_t *link)
 
        devname[0] = 0;
        if( !first_tuple(handle, &tuple, &parse) && parse.version_1.ns > 1 ) {
-           strncpy(devname,parse.version_1.str + parse.version_1.ofs[1], 
+           strlcpy(devname,parse.version_1.str + parse.version_1.ofs[1], 
                        sizeof(devname));
        }
        /*
index 8bbe8e76fe406e7490a9ca999e3a4c55f473b3be..b056d619af93219a563071b36a027a425e8a96ec 100644 (file)
@@ -433,9 +433,9 @@ void b1_parse_version(avmctrl_info *cinfo)
             j++, i += cinfo->versionbuf[i] + 1)
                cinfo->version[j] = &cinfo->versionbuf[i + 1];
 
-       strncpy(ctrl->serial, cinfo->version[VER_SERIAL], CAPI_SERIAL_LEN);
+       strlcpy(ctrl->serial, cinfo->version[VER_SERIAL], sizeof(ctrl->serial));
        memcpy(&ctrl->profile, cinfo->version[VER_PROFILE],sizeof(capi_profile));
-       strncpy(ctrl->manu, "AVM GmbH", CAPI_MANUFACTURER_LEN);
+       strlcpy(ctrl->manu, "AVM GmbH", sizeof(ctrl->manu));
        dversion = cinfo->version[VER_DRIVER];
        ctrl->version.majorversion = 2;
        ctrl->version.minorversion = 0;
@@ -785,8 +785,7 @@ static int __init b1_init(void)
        char rev[32];
 
        if ((p = strchr(revision, ':')) != 0 && p[1]) {
-               strncpy(rev, p + 2, sizeof(rev));
-               rev[sizeof(rev)-1] = 0;
+               strlcpy(rev, p + 2, sizeof(rev));
                if ((p = strchr(rev, '$')) != 0 && p > rev)
                   *(p-1) = 0;
        } else
index cd619ce29a202b1d17fdc65f175ce0dcdde16247..29a38706fd2d96d81ec04cff5f5bcfd377a48742 100644 (file)
@@ -945,8 +945,7 @@ int b1dma_init(void)
        char rev[32];
 
        if ((p = strchr(revision, ':')) != 0 && p[1]) {
-               strncpy(rev, p + 2, sizeof(rev));
-               rev[sizeof(rev)-1] = 0;
+               strlcpy(rev, p + 2, sizeof(rev));
                if ((p = strchr(rev, '$')) != 0 && p > rev)
                   *(p-1) = 0;
        } else
index a5790a76c51b8cd8ec8e64d53d317c14f2af17c4..ebd22420ca3607389646da77b9b7921a82b327f5 100644 (file)
@@ -512,7 +512,7 @@ static int diva_add_card(DESCRIPTOR * d)
        sync_req.GetName.Req = 0;
        sync_req.GetName.Rc = IDI_SYNC_REQ_GET_NAME;
        card->d.request((ENTITY *) & sync_req);
-       strncpy(card->name, sync_req.GetName.name, sizeof(card->name));
+       strlcpy(card->name, sync_req.GetName.name, sizeof(card->name));
        ctrl = &card->capi_ctrl;
        strcpy(ctrl->name, card->name);
        ctrl->register_appl = diva_register_appl;
@@ -528,7 +528,7 @@ static int diva_add_card(DESCRIPTOR * d)
                return (0);
        }
        card->Id = find_free_id();
-       strncpy(ctrl->manu, M_COMPANY, CAPI_MANUFACTURER_LEN);
+       strlcpy(ctrl->manu, M_COMPANY, sizeof(ctrl->manu));
        ctrl->version.majorversion = 2;
        ctrl->version.minorversion = 0;
        ctrl->version.majormanuversion = DRRELMAJOR;
@@ -544,7 +544,7 @@ static int diva_add_card(DESCRIPTOR * d)
                sprintf(serial, "%ld", sync_req.GetSerial.serial);
        }
        serial[CAPI_SERIAL_LEN - 1] = 0;
-       strncpy(ctrl->serial, serial, CAPI_SERIAL_LEN);
+       strlcpy(ctrl->serial, serial, sizeof(ctrl->serial));
 
        a = &adapter[card->Id - 1];
        card->adapter = a;
index a9f83907f2c456d23a51d7d6e7663c0d56da75a0..4fe56e14efee0e764ff26711456f91e36ae804a1 100644 (file)
@@ -77,16 +77,10 @@ void diva_xdi_didd_register_adapter(int card)
                d.features = IoAdapters[card - 1]->Properties.Features;
                DBG_TRC(("DIDD register A(%d) channels=%d", card,
                         d.channels))
-                   /* workaround for different Name in structure */
-                   strncpy(IoAdapters[card - 1]->Name,
-                           IoAdapters[card - 1]->Properties.Name, MIN(30,
-                                                                      strlen
-                                                                      (IoAdapters
-                                                                       [card
-                                                                        -
-                                                                        1]->
-                                                                       Properties.
-                                                                       Name)));
+               /* workaround for different Name in structure */
+               strlcpy(IoAdapters[card - 1]->Name,
+                       IoAdapters[card - 1]->Properties.Name,
+                       sizeof(IoAdapters[card - 1]->Name));
                req.didd_remove_adapter.e.Req = 0;
                req.didd_add_adapter.e.Rc = IDI_SYNC_REQ_DIDD_ADD_ADAPTER;
                req.didd_add_adapter.info.descriptor = (void *) &d;
index 8a49e52f6acf53c1a847ce339ee4dc8dcd4bccae..02457b2f9d4d5a540889d28049172b738ab6aee1 100644 (file)
@@ -1127,8 +1127,7 @@ idi_fill_in_T30(eicon_chan *chan, unsigned char *buffer)
                //eicon_log(NULL, 128, "sT30:universal_7 = %x\n", t30->universal_7);
                eicon_log(NULL, 128, "sT30:station_id_len = %x\n", t30->station_id_len);
                eicon_log(NULL, 128, "sT30:head_line_len = %x\n", t30->head_line_len);
-               strncpy(st, t30->station_id, t30->station_id_len);
-               st[t30->station_id_len] = 0;
+               strlcpy(st, t30->station_id, t30->station_id_len + 1);
                eicon_log(NULL, 128, "sT30:station_id = <%s>\n", st);
        }
        return(sizeof(eicon_t30_s));
@@ -1204,8 +1203,7 @@ idi_parse_edata(eicon_card *ccard, eicon_chan *chan, unsigned char *buffer, int
                //eicon_log(ccard, 128, "rT30:universal_7 = %x\n", p->universal_7);
                eicon_log(ccard, 128, "rT30:station_id_len = %x\n", p->station_id_len);
                eicon_log(ccard, 128, "rT30:head_line_len = %x\n", p->head_line_len);
-               strncpy(st, p->station_id, p->station_id_len);
-               st[p->station_id_len] = 0;
+               strlcpy(st, p->station_id, p->station_id_len + 1);
                eicon_log(ccard, 128, "rT30:station_id = <%s>\n", st);
        }
        if (!chan->fax) {
index 192e0bdf155da440f8479ad3b59587bf5db7a169..ef14ac9b1943f7f02919f168eaeb46317840dcab 100644 (file)
@@ -66,8 +66,8 @@ diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t * a,
                sync_req.GetName.Req = 0;
                sync_req.GetName.Rc = IDI_SYNC_REQ_GET_NAME;
                (*(a->d.request)) ((ENTITY *) & sync_req);
-               strncpy(features->name, sync_req.GetName.name,
-                       sizeof(features->name) - 1);
+               strlcpy(features->name, sync_req.GetName.name,
+                       sizeof(features->name));
 
                sync_req.GetSerial.Req = 0;
                sync_req.GetSerial.Rc = IDI_SYNC_REQ_GET_SERIAL;
index a6b2907753f41fc9a9b192c1ff5772739da57680..8a69359a9aaa6ce9d41aa1d877f482079f4a51bc 100644 (file)
@@ -335,7 +335,7 @@ static void avma1cs_config(dev_link_t *link)
 
        devname[0] = 0;
        if( !first_tuple(handle, &tuple, &parse) && parse.version_1.ns > 1 ) {
-           strncpy(devname,parse.version_1.str + parse.version_1.ofs[1], 
+           strlcpy(devname,parse.version_1.str + parse.version_1.ofs[1], 
                        sizeof(devname));
        }
        /*
index bb7244198a9e3269c98ace4552f5c3552f263a39..528bcd3173a4188c5b4af2114fa7652ba0d7182c 100644 (file)
@@ -1478,11 +1478,11 @@ lli_got_fac_req(struct Channel *chanp, capi_msg *cm) {
                return;
        switch(cm->para[3]) {
                case 4: /* Suspend */
-                       strncpy(chanp->setup.phone, &cm->para[5], cm->para[5] +1);
+                       strlcpy(chanp->setup.phone, &cm->para[5], cm->para[5] +1);
                        FsmEvent(&chanp->fi, EV_SUSPEND, cm);
                        break;
                case 5: /* Resume */
-                       strncpy(chanp->setup.phone, &cm->para[5], cm->para[5] +1);
+                       strlcpy(chanp->setup.phone, &cm->para[5], cm->para[5] +1);
                        if (chanp->fi.state == ST_NULL) {
                                FsmEvent(&chanp->fi, EV_RESUME, cm);
                        } else {
index c1663490b38712ac44289426f036c2e012dde2ca..ad29b96288832fda8a60ac8f0ab4410a1af2b9b6 100644 (file)
@@ -270,8 +270,7 @@ isdn_net_bind(isdn_net_dev *idev, isdn_net_ioctl_cfg *cfg)
        int chidx = -1;
        char drvid[25];
 
-       strncpy(drvid, cfg->drvid, 24);
-       drvid[24] = 0;
+       strlcpy(drvid, cfg->drvid, sizeof(drvid));
 
        if (cfg->exclusive && !strlen(drvid)) {
                /* If we want to bind exclusively, need to specify drv/chan */
@@ -562,8 +561,7 @@ isdn_net_setcfg(isdn_net_ioctl_cfg *cfg)
        if (retval)
                goto out;
 
-       strncpy(mlp->msn, cfg->eaz, ISDN_MSNLEN-1);
-       mlp->msn[ISDN_MSNLEN-1] = 0;
+       strlcpy(mlp->msn, cfg->eaz, sizeof(mlp->msn));
        mlp->onhtime = cfg->onhtime;
        idev->charge = cfg->charge;
        mlp->l2_proto = cfg->l2_proto;
@@ -864,7 +862,7 @@ isdn_net_getpeer(isdn_net_ioctl_phone *phone, isdn_net_ioctl_phone *peer)
 
        slot = idev->isdn_slot;
 
-       strncpy(phone->phone, slot->num, ISDN_MSNLEN);
+       strlcpy(phone->phone, slot->num, sizeof(phone->phone));
        phone->outgoing = USG_OUTGOING(slot->usage);
 
        if (copy_to_user(peer, phone, sizeof(*peer)))
index f1d3a39ec4a0c711292c9788d0a173288afb5839..5a1db25561b89fc7dbbf283e18e43575ae6cddbb 100644 (file)
@@ -467,11 +467,11 @@ ipppd_ioctl(struct inode *ino, struct file *file, unsigned int cmd,
                memset(&pci, 0, sizeof(pci));
 
                mlp = idev->mlp;
-               strncpy(pci.local_num, mlp->msn, 63);
+               strlcpy(pci.local_num, mlp->msn, sizeof(pci.local_num));
                i = 0;
                list_for_each_entry(phone, &mlp->phone[1], list) {
                        if (i++ == idev->dial) {
-                               strncpy(pci.remote_num,phone->num,63);
+                               strlcpy(pci.remote_num,phone->num,sizeof(pci.remote_num));
                                break;
                        }
                }
index 6dd3ccad8f3aa46c42a0d4af545345797f63cdec..7a0be06ce59ac54ac4b533b23ab1cfc3273f3c10 100644 (file)
@@ -509,7 +509,7 @@ icn_parse_status(u_char * status, int channel, icn_card * card)
                                char *s = strpbrk(t, ",");
 
                                *s++ = '\0';
-                               strncpy(cmd.parm.setup.phone, t,
+                               strlcpy(cmd.parm.setup.phone, t,
                                        sizeof(cmd.parm.setup.phone));
                                s = strpbrk(t = s, ",");
                                *s++ = '\0';
@@ -525,7 +525,7 @@ icn_parse_status(u_char * status, int channel, icn_card * card)
                                else
                                        cmd.parm.setup.si2 =
                                            simple_strtoul(t, NULL, 10);
-                               strncpy(cmd.parm.setup.eazmsn, s,
+                               strlcpy(cmd.parm.setup.eazmsn, s,
                                        sizeof(cmd.parm.setup.eazmsn));
                        }
                        cmd.parm.setup.plan = 0;
@@ -540,19 +540,19 @@ icn_parse_status(u_char * status, int channel, icn_card * card)
                        cmd.parm.setup.screen = 0;
                        break;
                case 5:
-                       strncpy(cmd.parm.num, status + 3, sizeof(cmd.parm.num) - 1);
+                       strlcpy(cmd.parm.num, status + 3, sizeof(cmd.parm.num));
                        break;
                case 6:
-                       sprintf(cmd.parm.num, "%d",
+                       snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%d",
                             (int) simple_strtoul(status + 7, NULL, 16));
                        break;
                case 7:
                        status += 3;
                        if (strlen(status) == 4)
-                               sprintf(cmd.parm.num, "%s%c%c",
+                               snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%s%c%c",
                                     status + 2, *status, *(status + 1));
                        else
-                               strncpy(cmd.parm.num, status + 1, sizeof(cmd.parm.num) - 1);
+                               strlcpy(cmd.parm.num, status + 1, sizeof(cmd.parm.num));
                        break;
                case 8:
                        card->flags &= ~ICN_FLAGS_B1ACTIVE;
@@ -1558,7 +1558,7 @@ icn_initcard(int port, char *id)
            ISDN_FEATURE_L3_TRANS |
            ISDN_FEATURE_P_UNKNOWN;
        card->ptype = ISDN_PTYPE_UNKNOWN;
-       strncpy(card->interface.id, id, sizeof(card->interface.id) - 1);
+       strlcpy(card->interface.id, id, sizeof(card->interface.id));
        card->msg_buf_write = card->msg_buf;
        card->msg_buf_read = card->msg_buf;
        card->msg_buf_end = &card->msg_buf[sizeof(card->msg_buf) - 1];
index 504c5f7461048572b8244783b7581f65308733d9..040638d97480c2bb4599a78264bc9908a29d5a1c 100644 (file)
@@ -125,7 +125,7 @@ isdnloop_parse_setup(char *setup, isdn_ctrl * cmd)
        char *s = strpbrk(t, ",");
 
        *s++ = '\0';
-       strncpy(cmd->parm.setup.phone, t, sizeof(cmd->parm.setup.phone));
+       strlcpy(cmd->parm.setup.phone, t, sizeof(cmd->parm.setup.phone));
        s = strpbrk(t = s, ",");
        *s++ = '\0';
        if (!strlen(t))
@@ -139,7 +139,7 @@ isdnloop_parse_setup(char *setup, isdn_ctrl * cmd)
        else
                cmd->parm.setup.si2 =
                    simple_strtoul(t, NULL, 10);
-       strncpy(cmd->parm.setup.eazmsn, s, sizeof(cmd->parm.setup.eazmsn));
+       strlcpy(cmd->parm.setup.eazmsn, s, sizeof(cmd->parm.setup.eazmsn));
        cmd->parm.setup.plan = 0;
        cmd->parm.setup.screen = 0;
 }
@@ -228,21 +228,21 @@ isdnloop_parse_status(u_char * status, int channel, isdnloop_card * card)
                        break;
                case 5:
                        /* CIF */
-                       strncpy(cmd.parm.num, status + 3, sizeof(cmd.parm.num) - 1);
+                       strlcpy(cmd.parm.num, status + 3, sizeof(cmd.parm.num));
                        break;
                case 6:
                        /* AOC */
-                       sprintf(cmd.parm.num, "%d",
+                       snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%d",
                             (int) simple_strtoul(status + 7, NULL, 16));
                        break;
                case 7:
                        /* CAU */
                        status += 3;
                        if (strlen(status) == 4)
-                               sprintf(cmd.parm.num, "%s%c%c",
+                               snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%s%c%c",
                                     status + 2, *status, *(status + 1));
                        else
-                               strncpy(cmd.parm.num, status + 1, sizeof(cmd.parm.num) - 1);
+                               strlcpy(cmd.parm.num, status + 1, sizeof(cmd.parm.num));
                        break;
                case 8:
                        /* Misc Errors on L1 and L2 */
@@ -1467,7 +1467,7 @@ isdnloop_initcard(char *id)
            ISDN_FEATURE_L3_TRANS |
            ISDN_FEATURE_P_UNKNOWN;
        card->ptype = ISDN_PTYPE_UNKNOWN;
-       strncpy(card->interface.id, id, sizeof(card->interface.id) - 1);
+       strlcpy(card->interface.id, id, sizeof(card->interface.id));
        card->msg_buf_write = card->msg_buf;
        card->msg_buf_read = card->msg_buf;
        card->msg_buf_end = &card->msg_buf[sizeof(card->msg_buf) - 1];
index aa272ea3d525fda98d58988a6cd595ca0aebeff1..449dd3004093478a93278bfe17319760ab72e3b9 100644 (file)
@@ -278,8 +278,7 @@ void mca_set_adapter_name(int slot, char* name)
        if(!mca_dev)
                return;
 
-       strncpy(mca_dev->dev.name, name, sizeof(mca_dev->dev.name));
-       mca_dev->dev.name[sizeof(mca_dev->dev.name) - 1] = '\0';
+       strlcpy(mca_dev->dev.name, name, sizeof(mca_dev->dev.name));
 }
 EXPORT_SYMBOL(mca_set_adapter_name);
 
index a6fa7d31e43a21411a8783e33a0bda8e5e4bd2a5..340fa680bb4158f2cbfe148bdbfb6769344d1e80 100644 (file)
@@ -488,9 +488,9 @@ static inline struct mapped_device *find_device(struct dm_ioctl *param)
                 * Sneakily write in both the name and the uuid
                 * while we have the cell.
                 */
-               strncpy(param->name, hc->name, sizeof(param->name));
+               strlcpy(param->name, hc->name, sizeof(param->name));
                if (hc->uuid)
-                       strncpy(param->uuid, hc->uuid, sizeof(param->uuid) - 1);
+                       strlcpy(param->uuid, hc->uuid, sizeof(param->uuid));
                else
                        param->uuid[0] = '\0';
 
@@ -626,7 +626,7 @@ static int __status(struct mapped_device *md, struct dm_ioctl *param,
                spec->status = 0;
                spec->sector_start = ti->begin;
                spec->length = ti->len;
-               strncpy(spec->target_type, ti->type->name,
+               strlcpy(spec->target_type, ti->type->name,
                        sizeof(spec->target_type));
 
                outptr += sizeof(struct dm_target_spec);
index 31a277fb418e746ee643c07ad94586664cac24dd..75cc23e45ac75e4aac7c0a9aef5f30c8293d0f05 100644 (file)
@@ -430,7 +430,7 @@ int saa7146_register_device(struct video_device *vid, struct saa7146_dev* dev, c
        DEB_EE(("dev:%p, name:'%s'\n",dev,name));
  
        *vid = device_template;
-       strncpy(vid->name, name, 32);
+       strlcpy(vid->name, name, sizeof(vid->name));
        vid->priv = dev;
 
        // fixme: -1 should be an insmod parameter *for the extension* (like "video_nr");
index 92a76b8d45ed02d2540db6fa122ce4328522ade5..33a47b77a8ab480c24d2fe806ddda8f65510dc7d 100644 (file)
@@ -801,7 +801,7 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
                DEB_EE(("VIDIOC_QUERYCAP\n"));
                
                 strcpy(cap->driver, "saa7146 v4l2");
-               strncpy(cap->card, dev->ext->name, sizeof(cap->card));
+               strlcpy(cap->card, dev->ext->name, sizeof(cap->card));
                sprintf(cap->bus_info,"PCI:%s",dev->pci->slot_name);
                cap->version = SAA7146_VERSION_CODE;
                cap->capabilities =
@@ -868,7 +868,7 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
                        }
                        memset(f,0,sizeof(*f));
                        f->index = index;
-                       strncpy(f->description,formats[index].name,31);
+                       strlcpy(f->description,formats[index].name,sizeof(f->description));
                        f->pixelformat = formats[index].pixelformat;
                        break;
                }
index 0b9aa08f1090c1fb5cce72df17fcf92b6793b30d..a3e4a766da732690a73bb172fb06a39d72617902 100644 (file)
@@ -191,7 +191,7 @@ static int adv717x_attach(struct i2c_adapter *adap, int addr, unsigned short fla
                // We should never get here!!!
                dname = unknown_name;
        }
-       strncpy(client->dev.name, dname, DEVICE_NAME_SIZE);
+       strlcpy(client->dev.name, dname, DEVICE_NAME_SIZE);
        init_MUTEX(&encoder->lock);
        encoder->client = client;
        i2c_set_clientdata(client, encoder);
index 8fa4cd7876430da59ecb95c9dfcb73872e1a1ee8..365ecc577ccc83a1cb897bd82e18a3033151f6fe 100644 (file)
@@ -172,7 +172,7 @@ static int bt819_attach(struct i2c_adapter *adap, int addr , unsigned long flags
        }
 
        memset(decoder, 0, sizeof(struct bt819));
-       strncpy(client->dev.name, "bt819", DEVICE_NAME_SIZE);
+       strlcpy(client->dev.name, "bt819", DEVICE_NAME_SIZE);
        i2c_set_clientdata(client, decoder);
        decoder->client = client;
        decoder->addr = addr;
index fc2306bb41828f6477bdff80b34fa3c6cc4e8855..ddd68c5352d48f6cac880df4859cf3bdca3fa8b8 100644 (file)
@@ -123,7 +123,7 @@ static int bt856_attach(struct i2c_adapter *adap, int addr , unsigned long flags
 
 
        memset(encoder, 0, sizeof(struct bt856));
-       strncpy(client->dev.name, "bt856", DEVICE_NAME_SIZE);
+       strlcpy(client->dev.name, "bt856", DEVICE_NAME_SIZE);
        encoder->client = client;
        i2c_set_clientdata(client, encoder);
        encoder->addr = client->addr;
index f094a933b1dd3e13ce9496a493016e9a2f307d66..407711d7b1d9969d8379ef85ee370de47c040739 100644 (file)
@@ -2309,7 +2309,7 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file,
                if (0 == v4l2)
                        return -EINVAL;
                 strcpy(cap->driver,"bttv");
-                strncpy(cap->card,btv->video_dev.name,sizeof(cap->card));
+                strlcpy(cap->card,btv->video_dev.name,sizeof(cap->card));
                sprintf(cap->bus_info,"PCI:%s",btv->dev->slot_name);
                cap->version = BTTV_VERSION_CODE;
                cap->capabilities =
@@ -2367,7 +2367,7 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file,
                f->index       = index;
                f->type        = type;
                f->pixelformat = bttv_formats[i].fourcc;
-               strncpy(f->description,bttv_formats[i].name,31);
+               strlcpy(f->description,bttv_formats[i].name,sizeof(f->description));
                return 0;
        }
 
index 97c3990e02ae0a13db73a799bf363129f58de182..14b8d07eedbb00a30ef14c33ae99da4fad6a0c57 100644 (file)
@@ -171,7 +171,7 @@ static int saa5249_attach(struct i2c_adapter *adap, int addr, int kind)
                return -ENOMEM;
        }
        memset(t, 0, sizeof(*t));
-       strncpy(client->dev.name, IF_NAME, DEVICE_NAME_SIZE);
+       strlcpy(client->dev.name, IF_NAME, DEVICE_NAME_SIZE);
        init_MUTEX(&t->lock);
        
        /*
index f1291325042ebc5f95ad949e377935c24f5a9dec..d89084e17cc2bd2949ebd7e254d75fe5510b306d 100644 (file)
@@ -176,7 +176,7 @@ static      const unsigned char initseq[] = {
 
        /* clear our private data */
        memset(decoder, 0, sizeof(*decoder));
-       strncpy(client->dev.name, IF_NAME, DEVICE_NAME_SIZE);
+       strlcpy(client->dev.name, IF_NAME, DEVICE_NAME_SIZE);
        decoder->client = client;
        i2c_set_clientdata(client, decoder);
        decoder->addr = addr;
index d27b45cc06b583e7b279075d315ade99ef1d0e64..c7cf4dfbe430abda9c9b7222a292bdd7f11bbae7 100644 (file)
@@ -122,7 +122,7 @@ static int saa7111_attach(struct i2c_adapter *adap, int addr, int kind)
        }
 
        memset(decoder, 0, sizeof(*decoder));
-       strncpy(client->dev.name, "saa7111", DEVICE_NAME_SIZE);
+       strlcpy(client->dev.name, "saa7111", DEVICE_NAME_SIZE);
        decoder->client = client;
        i2c_set_clientdata(client, decoder);
        decoder->addr = addr;
index 3431bc1e40056cbad48fcaac21bf043d2daa24e0..f4b72611b09b49af2ae8bd2034db380f6dacf7c4 100644 (file)
@@ -636,8 +636,8 @@ static int mixer_ioctl(struct inode *inode, struct file *file,
        {
                mixer_info info;
                memset(&info,0,sizeof(info));
-                strncpy(info.id,   "TV audio", sizeof(info.id)-1);
-                strncpy(info.name, dev->name,  sizeof(info.name)-1);
+                strlcpy(info.id,   "TV audio", sizeof(info.id));
+                strlcpy(info.name, dev->name,  sizeof(info.name));
                 info.modify_counter = dev->oss.count;
                 if (copy_to_user((void *)arg, &info, sizeof(info)))
                         return -EFAULT;
@@ -647,8 +647,8 @@ static int mixer_ioctl(struct inode *inode, struct file *file,
        {
                _old_mixer_info info;
                memset(&info,0,sizeof(info));
-                strncpy(info.id,   "TV audio", sizeof(info.id)-1);
-                strncpy(info.name, dev->name,  sizeof(info.name)-1);
+                strlcpy(info.id,   "TV audio", sizeof(info.id));
+                strlcpy(info.name, dev->name,  sizeof(info.name));
                 if (copy_to_user((void *)arg, &info, sizeof(info)))
                         return -EFAULT;
                return 0;
index 565fafa35846d55295d4ab3d3ac7693e8b466b29..32f4bfcdcf6bdbb642a7f1d3e18a80135043c20c 100644 (file)
@@ -251,7 +251,7 @@ static int ts_do_ioctl(struct inode *inode, struct file *file,
 
                memset(cap,0,sizeof(*cap));
                 strcpy(cap->driver, "saa7134");
-               strncpy(cap->card, saa7134_boards[dev->board].name,
+               strlcpy(cap->card, saa7134_boards[dev->board].name,
                        sizeof(cap->card));
                sprintf(cap->bus_info,"PCI:%s",dev->pci->slot_name);
                cap->version = SAA7134_VERSION_CODE;
@@ -300,7 +300,7 @@ static int ts_do_ioctl(struct inode *inode, struct file *file,
                
                memset(f,0,sizeof(*f));
                f->index = index;
-               strncpy(f->description, "MPEG TS", 31);
+               strlcpy(f->description, "MPEG TS", sizeof(f->description));
                f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
                f->pixelformat = V4L2_PIX_FMT_MPEG;
                return 0;
index 3afb31f847abd453072ec33807bbdf18a28aca34..1397e720676cd37d3e73c231b1bd6b1223826bcf 100644 (file)
@@ -1501,7 +1501,7 @@ static int video_do_ioctl(struct inode *inode, struct file *file,
                
                memset(cap,0,sizeof(*cap));
                 strcpy(cap->driver, "saa7134");
-               strncpy(cap->card, saa7134_boards[dev->board].name,
+               strlcpy(cap->card, saa7134_boards[dev->board].name,
                        sizeof(cap->card));
                sprintf(cap->bus_info,"PCI:%s",dev->pci->slot_name);
                cap->version = SAA7134_VERSION_CODE;
@@ -1733,7 +1733,7 @@ static int video_do_ioctl(struct inode *inode, struct file *file,
                        memset(f,0,sizeof(*f));
                        f->index = index;
                        f->type  = type;
-                       strncpy(f->description,formats[index].name,31);
+                       strlcpy(f->description,formats[index].name,sizeof(f->description));
                        f->pixelformat = formats[index].fourcc;
                        break;
                case V4L2_BUF_TYPE_VBI_CAPTURE:
@@ -1901,7 +1901,7 @@ static int radio_do_ioctl(struct inode *inode, struct file *file,
 
                memset(cap,0,sizeof(*cap));
                 strcpy(cap->driver, "saa7134");
-               strncpy(cap->card, saa7134_boards[dev->board].name,
+               strlcpy(cap->card, saa7134_boards[dev->board].name,
                        sizeof(cap->card));
                sprintf(cap->bus_info,"PCI:%s",dev->pci->slot_name);
                cap->version = SAA7134_VERSION_CODE;
index 0f1673c7a8bbe7c809262538bc51ba31f72d9eb6..8734ed58bc423a357de9b379a9c9765856c8aeaf 100644 (file)
@@ -202,7 +202,7 @@ static int saa7185_attach(struct i2c_adapter *adap, int addr, unsigned short fla
 
 
        memset(encoder, 0, sizeof(*encoder));
-       strncpy(client->dev.name, "saa7185", DEVICE_NAME_SIZE);
+       strlcpy(client->dev.name, "saa7185", DEVICE_NAME_SIZE);
        encoder->client = client;
        i2c_set_clientdata(client, encoder);
        encoder->addr = addr;
index 87d0b861166cc63c109ce654ae50a057a1cbe481..b7d84695612f4da60ef4762284cb3cdb304ca311 100644 (file)
@@ -824,7 +824,7 @@ static int tuner_attach(struct i2c_adapter *adap, int addr, int kind)
        if (type < TUNERS) {
                t->type = type;
                printk("tuner(bttv): type forced to %d (%s) [insmod]\n",t->type,tuners[t->type].name);
-               strncpy(client->dev.name, tuners[t->type].name, DEVICE_NAME_SIZE);
+               strlcpy(client->dev.name, tuners[t->type].name, DEVICE_NAME_SIZE);
        }
         i2c_attach_client(client);
         if (t->type == TUNER_MT2032)
@@ -875,7 +875,7 @@ tuner_command(struct i2c_client *client, unsigned int cmd, void *arg)
                t->type = *iarg;
                printk("tuner: type set to %d (%s)\n",
                         t->type,tuners[t->type].name);
-               strncpy(client->dev.name, tuners[t->type].name, DEVICE_NAME_SIZE);
+               strlcpy(client->dev.name, tuners[t->type].name, DEVICE_NAME_SIZE);
                if (t->type == TUNER_MT2032)
                         mt2032_init(client);
                break;
index 3e5ddd692fdebc1d13a592c918a6ddc3cfb78fd1..2b6fb3416142e2e13f656420bbe88c29fd060d8c 100644 (file)
@@ -83,8 +83,8 @@ static int tvmixer_ioctl(struct inode *inode, struct file *file, unsigned int cm
        
         if (cmd == SOUND_MIXER_INFO) {
                 mixer_info info;
-                strncpy(info.id, "tv card", sizeof(info.id));
-                strncpy(info.name, i2c_clientname(client), sizeof(info.name));
+                strlcpy(info.id, "tv card", sizeof(info.id));
+                strlcpy(info.name, i2c_clientname(client), sizeof(info.name));
                 info.modify_counter = 42 /* FIXME */;
                 if (copy_to_user((void *)arg, &info, sizeof(info)))
                         return -EFAULT;
@@ -92,8 +92,8 @@ static int tvmixer_ioctl(struct inode *inode, struct file *file, unsigned int cm
         }
         if (cmd == SOUND_OLD_MIXER_INFO) {
                 _old_mixer_info info;
-                strncpy(info.id, "tv card", sizeof(info.id));
-                strncpy(info.name, i2c_clientname(client), sizeof(info.name));
+                strlcpy(info.id, "tv card", sizeof(info.id));
+                strlcpy(info.name, i2c_clientname(client), sizeof(info.name));
                 if (copy_to_user((void *)arg, &info, sizeof(info)))
                         return -EFAULT;
                 return 0;
index a88b099df6d1a241b94babea24e811023d3533ec..b0c1bc7c4fe7be86c961d745568b08bd3131242d 100644 (file)
@@ -113,7 +113,7 @@ int v4l2_video_std_construct(struct v4l2_standard *vs,
                vs->frameperiod.denominator = 25;
                vs->framelines = 625;
        }
-       strncpy(vs->name,name,sizeof(vs->name));
+       strlcpy(vs->name,name,sizeof(vs->name));
        return 0;
 }
 
index 44b1c2ffca9a36201811788c4c5fee24d4293612..2765c8dac6fa6b200052043251ea9c1a6b8e4e71 100644 (file)
@@ -3356,7 +3356,7 @@ static int do_zoran_ioctl(struct zoran *zr, unsigned int cmd,
                        struct video_capability b;
                        DEBUG2(printk("%s: ioctl VIDIOCGCAP\n", zr->name));
 
-                       strncpy(b.name, zr->video_dev.name,
+                       strlcpy(b.name, zr->video_dev.name,
                                sizeof(b.name));
                        b.type =
                            VID_TYPE_CAPTURE | VID_TYPE_OVERLAY |
index 139ba63515407245e9335d4f524268cec34a2d19..4a06bc444378afb6cafe8971a3b4b8a5ac4b78a2 100644 (file)
@@ -1317,7 +1317,7 @@ mptctl_getiocinfo (unsigned long arg, unsigned int data_size)
 
        /* Set the Version Strings.
         */
-       strncpy (karg.driverVersion, MPT_LINUX_PACKAGE_NAME, MPT_IOCTL_VERSION_LENGTH);
+       strlcpy (karg.driverVersion, MPT_LINUX_PACKAGE_NAME, MPT_IOCTL_VERSION_LENGTH);
 
        karg.busChangeEvent = 0;
        karg.hostId = ioc->pfacts[port].PortSCSIID;
@@ -1517,8 +1517,8 @@ mptctl_readtest (unsigned long arg)
 #else
        karg.chip_type = ioc->chip_type;
 #endif
-       strncpy (karg.name, ioc->name, MPT_MAX_NAME);
-       strncpy (karg.product, ioc->prod_name, MPT_PRODUCT_LENGTH);
+       strlcpy (karg.name, ioc->name, MPT_MAX_NAME);
+       strlcpy (karg.product, ioc->prod_name, MPT_PRODUCT_LENGTH);
 
        /* Copy the data from kernel memory to user memory
         */
@@ -2488,7 +2488,7 @@ mptctl_hp_hostinfo(unsigned long arg, unsigned int data_size)
        cfg.dir = 0;    /* read */
        cfg.timeout = 10;
 
-       strncpy(karg.serial_number, " ", 24);
+       strlcpy(karg.serial_number, " ", sizeof(karg.serial_number));
        if (mpt_config(ioc, &cfg) == 0) {
                if (cfg.hdr->PageLength > 0) {
                        /* Issue the second config page request */
@@ -2500,7 +2500,8 @@ mptctl_hp_hostinfo(unsigned long arg, unsigned int data_size)
                                if (mpt_config(ioc, &cfg) == 0) {
                                        ManufacturingPage0_t *pdata = (ManufacturingPage0_t *) pbuf;
                                        if (strlen(pdata->BoardTracerNumber) > 1)
-                                               strncpy(karg.serial_number, pdata->BoardTracerNumber, 24);
+                                               strlcpy(karg.serial_number, pdata->BoardTracerNumber,
+                                                       sizeof(karg.serial_number));
                                }
                                pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, pbuf, buf_dma);
                                pbuf = NULL;
index 862bc4bb4c84dc07c3c3c4d6c4858a90ef5ab460..d621ddf6304d293d9e3024525bad63cd6dc37edb 100644 (file)
@@ -168,8 +168,7 @@ static struct mtd_info *jedec_probe(struct map_info *map)
    /* Generate a part name that includes the number of different chips and
       other configuration information */
    count = 1;
-   strncpy(Part,map->name,sizeof(Part)-10);
-   Part[sizeof(Part)-11] = 0;
+   strlcpy(Part,map->name,sizeof(Part)-10);
    strcat(Part," ");
    Uniq = 0;
    for (I = 0; priv->chips[I].jedec != 0 && I < MAX_JEDEC_CHIPS; I++)
@@ -246,8 +245,7 @@ static struct mtd_info *jedec_probe(struct map_info *map)
    //   printk("Part: '%s'\n",Part);
    
    memset(MTD,0,sizeof(*MTD));
-  // strncpy(MTD->name,Part,sizeof(MTD->name));
-  // MTD->name[sizeof(MTD->name)-1] = 0;
+  // strlcpy(MTD->name,Part,sizeof(MTD->name));
    MTD->name = map->name;
    MTD->type = MTD_NORFLASH;
    MTD->flags = MTD_CAP_NORFLASH;
index f954687730012735d979fa3154e426f1de0f9c19..74d1c7698777e56c713045bbb11bb295ed43e7ba 100644 (file)
@@ -187,8 +187,7 @@ static struct mtd_partition * newpart(char *s,
        parts[this_part].mask_flags = mask_flags;
        if (name)
        {
-               strncpy(extra_mem, name, name_len);
-               extra_mem[name_len] = 0;
+               strlcpy(extra_mem, name, name_len + 1);
        }
        else
        {
@@ -267,8 +266,7 @@ static int mtdpart_setup_real(char *s)
                this_mtd->parts = parts;
                this_mtd->num_parts = num_parts;
                this_mtd->mtd_id = (char*)(this_mtd + 1);
-               strncpy(this_mtd->mtd_id, mtd_id, mtd_id_len);
-               this_mtd->mtd_id[mtd_id_len] = 0;
+               strlcpy(this_mtd->mtd_id, mtd_id, mtd_id_len + 1);
 
                /* link into chain */
                this_mtd->next = partitions;            
index 4fa584004afad7405d618a3f45fdf1ec6175c300..5aeaa390861061034b417845407d34858fa7e567 100644 (file)
@@ -1522,7 +1522,7 @@ static int ccio_probe(struct parisc_device *dev)
        memset(ioc, 0, sizeof(struct ioc));
 
        ioc->name = dev->id.hversion == U2_IOA_RUNWAY ? "U2" : "UTurn";
-       strncpy(dev->dev.name, ioc->name, sizeof(dev->dev.name));
+       strlcpy(dev->dev.name, ioc->name, sizeof(dev->dev.name));
 
        printk(KERN_INFO "Found %s at 0x%lx\n", ioc->name, dev->hpa);
 
index 81630ca37b052864867090c34f418d5a789fff08..ace3cbd21dbb629d317cafcc1de1fe7dd43cea97 100644 (file)
@@ -667,7 +667,7 @@ int lcd_print( char *str )
        tasklet_disable(&led_tasklet);
 
        /* copy display string to buffer for procfs */
-       strncpy(lcd_text, str, sizeof(lcd_text)-1);
+       strlcpy(lcd_text, str, sizeof(lcd_text));
        
        /* Set LCD Cursor to 1st character */
        gsc_writeb(lcd_info.reset_cmd1, LCD_CMD_REG);
index f9c9d0e1a0e474b9b818ebbc1add80581d2033cd..d9e1362a4a876a87ebf1e9518479a3e58ac790b4 100644 (file)
@@ -128,8 +128,7 @@ pci_pool_create (const char *name, struct pci_dev *pdev,
        if (!(retval = kmalloc (sizeof *retval, SLAB_KERNEL)))
                return retval;
 
-       strncpy (retval->name, name, sizeof retval->name);
-       retval->name [sizeof retval->name - 1] = 0;
+       strlcpy (retval->name, name, sizeof retval->name);
 
        retval->dev = pdev;
 
index 4ac5ce4f00ed50f612ba736f3f79ae301e404f4e..e0aac3370bf494bac64b88efe1d6ed048fc3d5b1 100644 (file)
@@ -1026,7 +1026,7 @@ int pcmcia_bind_device(bind_req_t *req)
     if (!client) return CS_OUT_OF_RESOURCE;
     memset(client, '\0', sizeof(client_t));
     client->client_magic = CLIENT_MAGIC;
-    strncpy(client->dev_info, (char *)req->dev_info, DEV_NAME_LEN);
+    strlcpy(client->dev_info, (char *)req->dev_info, DEV_NAME_LEN);
     client->Socket = req->Socket;
     client->Function = req->Function;
     client->state = CLIENT_UNBOUND;
@@ -1069,7 +1069,7 @@ int pcmcia_bind_mtd(mtd_bind_t *req)
     }
     if (!region || (region->mtd != NULL))
        return CS_BAD_OFFSET;
-    strncpy(region->dev_info, (char *)req->dev_info, DEV_NAME_LEN);
+    strlcpy(region->dev_info, (char *)req->dev_info, DEV_NAME_LEN);
     
     DEBUG(1, "cs: bind_mtd(): attr 0x%x, offset 0x%x, dev %s\n",
          req->Attributes, req->CardOffset, (char *)req->dev_info);
index c52d3a087016e1b4bec7555338dbbb9ade45bf4b..ae09bbbfe26774f863f324ef71a07b35dd36bc28 100644 (file)
@@ -480,8 +480,7 @@ static int get_device_info(struct pcmcia_bus_socket *s, bind_info_t *bind_info,
                        /* Try to handle "next" here some way? */
                }
                if (dev && dev->driver) {
-                       strncpy(bind_info->name, dev->driver->name, DEV_NAME_LEN);
-                       bind_info->name[DEV_NAME_LEN-1] = '\0';
+                       strlcpy(bind_info->name, dev->driver->name, DEV_NAME_LEN);
                        bind_info->major = 0;
                        bind_info->minor = 0;
                        bind_info->next = NULL;
@@ -507,8 +506,7 @@ static int get_device_info(struct pcmcia_bus_socket *s, bind_info_t *bind_info,
            if (node == bind_info->next) break;
     if (node == NULL) return -ENODEV;
 
-    strncpy(bind_info->name, node->dev_name, DEV_NAME_LEN);
-    bind_info->name[DEV_NAME_LEN-1] = '\0';
+    strlcpy(bind_info->name, node->dev_name, DEV_NAME_LEN);
     bind_info->major = node->major;
     bind_info->minor = node->minor;
     bind_info->next = node->next;
index 4d47014858d0616eb11720d69ae0b810f26bb734..f998ba48db4c1d40b33e98ca3c625c142720d3e5 100644 (file)
@@ -178,7 +178,7 @@ static int __init i82092aa_pci_probe(struct pci_dev *dev, const struct pci_devic
        pci_set_drvdata(dev, &cls_d);
        cls_d->class_dev.class = &pcmcia_socket_class;
        cls_d->class_dev.dev = &dev->dev;
-       strncpy(cls_d->class_dev.class_id, dev->dev.name, BUS_ID_SIZE);
+       strlcpy(cls_d->class_dev.class_id, dev->dev.name, BUS_ID_SIZE);
        class_set_devdata(&cls_d->class_dev, cls_d);
        class_device_register(&cls_d->class_dev);
 
index e473ffba5b6b5ca01c4a9a8979f01930d4bf2deb..560503d3917d9aa8e3e4b4f9a954af6299fab48d 100644 (file)
@@ -1560,7 +1560,7 @@ static int __init init_i82365(void)
     i82365_data.nsock = sockets;
     i82365_class_data.dev = &i82365_device.dev;
     i82365_class_data.class_data = &i82365_data;
-    strncpy(i82365_class_data.class_id, "i82365", BUS_ID_SIZE);
+    strlcpy(i82365_class_data.class_id, "i82365", BUS_ID_SIZE);
     
     platform_device_register(&i82365_device);
     class_device_register(&i82365_class_data);
index c48b05ba882859f6287d83e64c4bb0294bdbbc3b..e992433926428930e7b5f7b9f322f41fc4dcb535 100644 (file)
@@ -155,7 +155,7 @@ static int __devinit add_pci_socket(int nr, struct pci_dev *dev, struct pci_sock
        socket->cls_d.ops = &pci_socket_operations;
        socket->cls_d.class_dev.class = &pcmcia_socket_class;
        socket->cls_d.class_dev.dev = &dev->dev;
-       strncpy(socket->cls_d.class_dev.class_id, dev->dev.bus_id, BUS_ID_SIZE);
+       strlcpy(socket->cls_d.class_dev.class_id, dev->dev.bus_id, BUS_ID_SIZE);
        class_set_devdata(&socket->cls_d.class_dev, &socket->cls_d);
 
        /* prepare pci_socket_t */
index 94b5e6d6884328ca6f120b6291edb8ae68a58f92..b85d5c8468d6018a6754de718c732a1a52394cd9 100644 (file)
@@ -527,7 +527,7 @@ static int __init init_tcic(void)
     tcic_data.nsock = sockets;
     tcic_class_data.dev = &tcic_device.dev;
     tcic_class_data.class_data = &tcic_data;
-    strncpy(tcic_class_data.class_id, "tcic-pcmcia", BUS_ID_SIZE);
+    strlcpy(tcic_class_data.class_id, "tcic-pcmcia", BUS_ID_SIZE);
     
     platform_device_register(&tcic_device);
     class_device_register(&tcic_class_data);
index d79573b5d4aeb23a643051da5e67fb102bae939a..7ca8de1a140f283e6eca2e42c54f812e59591c75 100644 (file)
@@ -69,7 +69,7 @@ int pnp_register_protocol(struct pnp_protocol *protocol)
 
        protocol->number = nodenum;
        sprintf(protocol->dev.bus_id, "pnp%d", nodenum);
-       strncpy(protocol->dev.name,protocol->name,DEVICE_NAME_SIZE);
+       strlcpy(protocol->dev.name,protocol->name,DEVICE_NAME_SIZE);
        return device_register(&protocol->dev);
 }
 
index e07b7280db999687754a2367c697d9b1c9a79ef9..3cdf5c817e766b670f1cbb74d263b12a77ee7156 100644 (file)
@@ -97,7 +97,7 @@ css_register_subchannel(struct subchannel *sch)
        sch->dev.bus = &css_bus_type;
 
        /* Set a name for the subchannel */
-       strncpy (sch->dev.name, subchannel_types[sch->st], DEVICE_NAME_SIZE);
+       strlcpy (sch->dev.name, subchannel_types[sch->st], DEVICE_NAME_SIZE);
        snprintf (sch->dev.bus_id, DEVICE_ID_SIZE, "0:%04x", sch->irq);
 
        /* make it known to the system */
index bff622e0593559a5f46b3c001ab8ff5df7f54d23..45e31d6619ad8d1e1b43fca3d581ed3a56020884 100644 (file)
@@ -2915,7 +2915,7 @@ ctc_new_device(struct ccwgroup_device *cgdev)
 
        ctc_add_attributes(&cgdev->dev);
 
-       strncpy(privptr->fsm->name, dev->name, sizeof (privptr->fsm->name));
+       strlcpy(privptr->fsm->name, dev->name, sizeof (privptr->fsm->name));
 
        print_banner();
 
index 4baefba8b65494d041344ca7eb409bc3cd1f4c48..a92b4cc8d3e7c2720250704d0affe09da2405ef2 100644 (file)
@@ -80,8 +80,7 @@ group_write(struct device_driver *drv, const char *buf, size_t count)
                if (!(end = strchr(start, delim[i])))
                        return count;
                len = min_t(ptrdiff_t, BUS_ID_SIZE, end - start);
-               strncpy (bus_ids[i], start, len);
-               bus_ids[i][len] = '\0';
+               strlcpy (bus_ids[i], start, len);
                argv[i] = bus_ids[i];
                start = end + 1;
        }
index b42c1ecbeb7bc613f05c4ccad70f294414c38ea0..d2519b01a987f11aa55c4ccfe6134af882a1675e 100644 (file)
@@ -26,7 +26,7 @@ init_fsm(char *name, const char **state_names, const char **event_names, int nr_
                return NULL;
        }
        memset(this, 0, sizeof(fsm_instance));
-       strncpy(this->name, name, sizeof(this->name));
+       strlcpy(this->name, name, sizeof(this->name));
 
        f = (fsm *)kmalloc(sizeof(fsm), order);
        if (f == NULL) {
index 687e62e184221877dab9266a619bbac58551f0bd..1de8467567db97ac469866e8e77195cee666444b 100644 (file)
@@ -332,7 +332,7 @@ NCR_D700_probe(struct device *dev)
        }
 
        mca_device_set_claim(mca_dev, 1);
-       strncpy(dev->name, "NCR_D700", sizeof(dev->name));
+       strlcpy(dev->name, "NCR_D700", sizeof(dev->name));
        dev_set_drvdata(dev, p);
        return 0;
 }
index 50d8c7bf95709ff442dd1375413670f59c7d3b2b..dab1b338f72f6c03d6dd7e70554f87ff81a3f6a8 100644 (file)
@@ -1130,7 +1130,7 @@ static int query_disk(struct aac_dev *dev, void *arg)
        else
                qd.unmapped = 0;
 
-       strncpy(qd.name, fsa_dev_ptr->devname[qd.cnum], 8);
+       strlcpy(qd.name, fsa_dev_ptr->devname[qd.cnum], sizeof(qd.name));
 
        if (copy_to_user(arg, &qd, sizeof (struct aac_query_disk)))
                return -EFAULT;
index 14bd0718b5e00d909d7dd2bd4d35d6ecff4919ef..a319ad0fa4243caf9a2e29acab96e75d76e3a9d9 100644 (file)
@@ -736,10 +736,8 @@ static int register_pio_HBA(long base, struct get_conf *gc, Scsi_Host_Template *
        memset(hd->ccb, 0, (sizeof(struct eata_ccb) * ntohs(gc->queuesiz)));
        memset(hd->reads, 0, sizeof(unsigned long) * 26);
 
-       strncpy(SD(sh)->vendor, &buff[8], 8);
-       SD(sh)->vendor[8] = 0;
-       strncpy(SD(sh)->name, &buff[16], 17);
-       SD(sh)->name[17] = 0;
+       strlcpy(SD(sh)->vendor, &buff[8], sizeof(SD(sh)->vendor));
+       strlcpy(SD(sh)->name, &buff[16], sizeof(SD(sh)->name));
        SD(sh)->revision[0] = buff[32];
        SD(sh)->revision[1] = buff[33];
        SD(sh)->revision[2] = buff[34];
index 560324f0aad88ca251a88e73e70e58f0ca03fe4f..fad32690c839065cc30052503c9b15d7f1df3233 100644 (file)
@@ -2295,15 +2295,15 @@ GDTH_INITFUNC(static int, gdth_search_drives(int hanum))
         TRACE2(("gdth_search_drives(): CACHE_READ_OEM_STRING_RECORD OK\n"));
         printk("GDT CTR%d Vendor: %s\n",hanum,oemstr->text.oem_company_name);
         /* Save the Host Drive inquiry data */
-        strncpy(ha->oem_name,oemstr->text.scsi_host_drive_inquiry_vendor_id,7);
-        ha->oem_name[7] = '\0';
+        strlcpy(ha->oem_name,oemstr->text.scsi_host_drive_inquiry_vendor_id,
+               sizeof(ha->oem_name));
     } else {
         /* Old method, based on PCI ID */
         TRACE2(("gdth_search_drives(): CACHE_READ_OEM_STRING_RECORD failed\n"));
         if (ha->oem_id == OEM_ID_INTEL)
-            strcpy(ha->oem_name,"Intel  ");
+            strlcpy(ha->oem_name,"Intel  ", sizeof(ha->oem_name));
         else
-            strcpy(ha->oem_name,"ICP    ");
+            strlcpy(ha->oem_name,"ICP    ", sizeof(ha->oem_name));
     }
 
     /* scanning for host drives */
index 97affe2e2728b0eca5235654d3e5916bd1b90611..533b744b759173c2b2bf62d5e5852ffe92acac7a 100644 (file)
@@ -1820,8 +1820,7 @@ static void __init in2000_setup(char *str, int *ints)
        int i;
        char *p1, *p2;
 
-       strncpy(setup_buffer, str, SETUP_BUFFER_SIZE);
-       setup_buffer[SETUP_BUFFER_SIZE - 1] = '\0';
+       strlcpy(setup_buffer, str, SETUP_BUFFER_SIZE);
        p1 = setup_buffer;
        i = 0;
        while (*p1 && (i < MAX_SETUP_ARGS)) {
index 47380dc9b5994e7e25c3852804f61e33e67433f0..2badcd80281bfad6859db847ee6d2f05fb0e8203 100644 (file)
@@ -3701,7 +3701,7 @@ ncr_attach (Scsi_Host_Template *tpnt, int unit, ncr_device *device)
        /*
        **      Store input informations in the host data structure.
        */
-       strncpy(np->chip_name, device->chip.name, sizeof(np->chip_name) - 1);
+       strlcpy(np->chip_name, device->chip.name, sizeof(np->chip_name));
        np->unit        = unit;
        np->verbose     = driver_setup.verbose;
        sprintf(np->inst_name, "ncr53c%s-%d", np->chip_name, np->unit);
@@ -5033,7 +5033,7 @@ static int ncr_detach(ncb_p np)
        char inst_name[16];
 
        /* Local copy so we don't access np after freeing it! */
-       strncpy(inst_name, ncr_name(np), 16);
+       strlcpy(inst_name, ncr_name(np), sizeof(inst_name));
 
        printk("%s: releasing host resources\n", ncr_name(np));
 
index fb0162ac35f16995caace8fd507019291063b252..5cc34521a6fafa8b226b31923fbeb5fe5459c87c 100644 (file)
@@ -2227,8 +2227,7 @@ static int __osst_analyze_headers(OS_Scsi_Tape * STp, Scsi_Request ** aSRpnt, in
        }
        if (strncmp(header->ident_str, "ADR_SEQ", 7) != 0 &&
            strncmp(header->ident_str, "ADR-SEQ", 7) != 0) {
-               strncpy(id_string, header->ident_str, 7);
-               id_string[7] = 0;
+               strlcpy(id_string, header->ident_str, 8);
 #if DEBUG
                printk(OSST_DEB_MSG "%s:D: Invalid header identification string %s\n", name, id_string);
 #endif
index fa4b4990de1419940147f5cb0d6dcef68f8af354..0614b041ddb511680e995cf43a0725b58384e353 100644 (file)
@@ -253,7 +253,7 @@ sim710_mca_probe(struct device *dev)
        } else {
                return -ENODEV;
        }
-       strncpy(dev->name, name, sizeof(dev->name));
+       strlcpy(dev->name, name, sizeof(dev->name));
        mca_device_set_claim(mca_dev, 1);
        base = mca_device_transform_ioport(mca_dev, base);
        irq_vector = mca_device_transform_irq(mca_dev, irq_vector);
index e229c5e4cf07b8e7f444428a8d98ee9a2d91f584..9a30125df7516e69cdaf965448f576b470473e12 100644 (file)
@@ -5454,7 +5454,7 @@ ncr_attach (Scsi_Host_Template *tpnt, int unit, ncr_device *device)
        /*
        **      Store input informations in the host data structure.
        */
-       strncpy(np->chip_name, device->chip.name, sizeof(np->chip_name) - 1);
+       strlcpy(np->chip_name, device->chip.name, sizeof(np->chip_name));
        np->unit        = unit;
        np->verbose     = driver_setup.verbose;
        sprintf(np->inst_name, NAME53C "%s-%d", np->chip_name, np->unit);
index 3204dc956819eaa9ec2ed8d5596773f9c4e45711..6742c783c3135b1cb9f61309ee74a0944c563087 100644 (file)
@@ -1987,7 +1987,7 @@ sym_attach (Scsi_Host_Template *tpnt, int unit, sym_device *dev)
        /*
         *  Edit its name.
         */
-       strncpy(np->s.chip_name, dev->chip.name, sizeof(np->s.chip_name)-1);
+       strlcpy(np->s.chip_name, dev->chip.name, sizeof(np->s.chip_name));
        sprintf(np->s.inst_name, "sym%d", np->s.unit);
 
        /*
index bd9445d9ff6d93988ff0559bf0dc6d1e901ba0b7..d25d52b6ff842432b3f9e085b22aed8ae2f4ca4b 100644 (file)
@@ -1205,8 +1205,7 @@ static int __init init (void)
        /* a real value would likely come through some id prom
         * or module option.  this one takes at least two packets.
         */
-       strncpy (serial, "0123456789.0123456789.0123456789", sizeof serial);
-       serial [sizeof serial - 1] = 0;
+       strlcpy (serial, "0123456789.0123456789.0123456789", sizeof serial);
 
        return usb_gadget_register_driver (&zero_driver);
 }
index 9988b13978304645f8eefb6a935a92c86840a4db..834058de2ddd3bef520c0a3a1b8bfa590a020d35 100644 (file)
@@ -708,12 +708,10 @@ brlvger_ioctl(struct inode *inode, struct file *file,
        case BRLVGER_GET_INFO: {
                struct brlvger_info vi;
 
-               strncpy(vi.driver_version, DRIVER_VERSION,
+               strlcpy(vi.driver_version, DRIVER_VERSION,
                        sizeof(vi.driver_version));
-               vi.driver_version[sizeof(vi.driver_version)-1] = 0;
-               strncpy(vi.driver_banner, longbanner,
+               strlcpy(vi.driver_banner, longbanner,
                        sizeof(vi.driver_banner));
-               vi.driver_banner[sizeof(vi.driver_banner)-1] = 0;
 
                vi.display_length = priv->plength;
                
index 45d98ede58500c2284549929eb63c54d65ac1f3a..9ad571c050d557e90786de4b85541bc473e01ab5 100644 (file)
@@ -670,7 +670,7 @@ static int netdev_ethtool_ioctl(struct net_device *dev, void *useraddr)
        switch (ethcmd) {
        case ETHTOOL_GDRVINFO: {
                struct ethtool_drvinfo info = {ETHTOOL_GDRVINFO};
-               strncpy(info.driver, "kaweth", sizeof(info.driver)-1);
+               strlcpy(info.driver, "kaweth", sizeof(info.driver));
                if (copy_to_user(useraddr, &info, sizeof(info)))
                        return -EFAULT;
                return 0;
index c2cdaaa8ef18096253e3fb56d4ceed95458efcd5..bcc668578e66adce716df2dbc67639be6f7aebcd 100644 (file)
@@ -927,10 +927,10 @@ static int pegasus_ethtool_ioctl(struct net_device *dev, void *useraddr)
        /* get driver-specific version/etc. info */
        case ETHTOOL_GDRVINFO:{
                        struct ethtool_drvinfo info = { ETHTOOL_GDRVINFO };
-                       strncpy(info.driver, driver_name,
-                               sizeof (info.driver) - 1);
-                       strncpy(info.version, DRIVER_VERSION,
-                               sizeof (info.version) - 1);
+                       strlcpy(info.driver, driver_name,
+                               sizeof (info.driver));
+                       strlcpy(info.version, DRIVER_VERSION,
+                               sizeof (info.version));
                        if (copy_to_user(useraddr, &info, sizeof (info)))
                                return -EFAULT;
                        return 0;
index 48ad78cde05e4470723488ac39eaf590eee79ba7..a6ef46758f8d567bd0a7e818accd96d082cdc924 100644 (file)
@@ -2425,7 +2425,7 @@ int __init atyfb_setup(char *options)
                         && (!strncmp(this_opt, "Mach64:", 7))) {
                        static unsigned char m64_num;
                        static char mach64_str[80];
-                       strncpy(mach64_str, this_opt + 7, 80);
+                       strlcpy(mach64_str, this_opt + 7, sizeof(mach64_str));
                        if (!store_video_par(mach64_str, m64_num)) {
                                m64_num++;
                                mach64_count = m64_num;
index 0156e052094751971bd05bf13e8ac18ab6004083..cf270f15414428d24236c1d1871150e53febdd1d 100644 (file)
@@ -194,8 +194,7 @@ static int bw2_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
 static void
 bw2_init_fix(struct fb_info *info, int linebytes)
 {
-       strncpy(info->fix.id, "bwtwo", sizeof(info->fix.id) - 1);
-       info->fix.id[sizeof(info->fix.id)-1] = 0;
+       strlcpy(info->fix.id, "bwtwo", sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.visual = FB_VISUAL_MONO01;
index db67f321b18366ed7288475156984a36f47712c8..b66e0fbd2a1652dd4268e7d42b756b01859dec27 100644 (file)
@@ -337,8 +337,7 @@ static void cg14_init_fix(struct fb_info *info, int linebytes)
 {
        struct cg14_par *par = (struct cg14_par *)info->par;
 
-       strncpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id) - 1);
-       info->fix.id[sizeof(info->fix.id)-1] = 0;
+       strlcpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.visual = FB_VISUAL_TRUECOLOR;
index 82b15c380f0380ba745561a6509791a00eb47900..361f5f93942f5538af5cd6e1ac7c4c64e71fc8d7 100644 (file)
@@ -253,8 +253,7 @@ cg3_init_fix(struct fb_info *info, int linebytes)
 {
        struct cg3_par *par = (struct cg3_par *)info->par;
 
-       strncpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id) - 1);
-       info->fix.id[sizeof(info->fix.id)-1] = 0;
+       strlcpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
index 03fd97b544a7fc529dc93ae073aa03bde22e504a..a0004f68c8716403846999353b47282f7439e609 100644 (file)
@@ -2777,9 +2777,8 @@ int __init clgenfb_init(void)
        fb_info->gen.parsize = sizeof (struct clgenfb_par);
        fb_info->gen.fbhw = &clgen_hwswitch;
 
-       strncpy (fb_info->gen.info.modename, clgen_board_info[btype].name,
+       strlcpy (fb_info->gen.info.modename, clgen_board_info[btype].name,
                 sizeof (fb_info->gen.info.modename));
-       fb_info->gen.info.modename [sizeof (fb_info->gen.info.modename) - 1] = 0;
 
        fb_info->gen.info.fbops = &clgenfb_ops;
        fb_info->gen.info.disp = &disp;
index ae03a477520c5e760622e98254402e82f3267463..2eb655210f261e5bdfef330aad94876f725ad0ab 100644 (file)
@@ -273,7 +273,7 @@ static char default_sti_path[21];
 static int __init sti_setup(char *str)
 {
        if (str)
-               strncpy (default_sti_path, str, sizeof (default_sti_path));
+               strlcpy (default_sti_path, str, sizeof (default_sti_path));
        
        return 0;
 }
index 827a1977ef917aeeede1ddb723fc9269cabccbf6..568c10ffe0962837788385641649037f7743b6b0 100644 (file)
@@ -1128,7 +1128,7 @@ int cyber2000fb_attach(struct cyberpro_info *info, int idx)
                info->disable_extregs = cyber2000fb_disable_extregs;
                info->info            = int_cfb_info;
 
-               strncpy(info->dev_name, int_cfb_info->fb.fix.id, sizeof(info->dev_name));
+               strlcpy(info->dev_name, int_cfb_info->fb.fix.id, sizeof(info->dev_name));
        }
 
        return int_cfb_info != NULL;
@@ -1319,7 +1319,7 @@ cyber2000fb_setup(char *options)
                        continue;
 
                if (strncmp(opt, "font:", 5) == 0) {
-                       strncpy(default_font_storage, opt + 5, sizeof(default_font_storage));
+                       strlcpy(default_font_storage, opt + 5, sizeof(default_font_storage));
                        default_font = default_font_storage;
                        continue;
                }
index 5e0ac99bfd2d6e7ce4dd7971284abd75a45f89c0..9bb4550db809230d184ae7e8b5e0fa97728fda8b 100644 (file)
@@ -810,8 +810,7 @@ ffb_init_fix(struct fb_info *info)
        } else
                ffb_type_name = "Elite 3D";
 
-       strncpy(info->fix.id, ffb_type_name, sizeof(info->fix.id) - 1);
-       info->fix.id[sizeof(info->fix.id)-1] = 0;
+       strlcpy(info->fix.id, ffb_type_name, sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.visual = FB_VISUAL_TRUECOLOR;
index f18c3c4fd81bd8e363722fcf3aacd9180689cc30..12917dab5046f3ffea430f272eb07f901a8d0280 100644 (file)
@@ -336,8 +336,7 @@ leo_init_fix(struct fb_info *info)
 {
        struct leo_par *par = (struct leo_par *)info->par;
 
-       strncpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id) - 1);
-       info->fix.id[sizeof(info->fix.id)-1] = 0;
+       strlcpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.visual = FB_VISUAL_TRUECOLOR;
index aa5a1b909415e0ce0e38ec1e9d246bae031d992b..8b8d6ccfa930dbba507214b59bf4529741f69f93 100644 (file)
@@ -2364,7 +2364,7 @@ int __init matroxfb_setup(char *options) {
                else if (!strncmp(this_opt, "vesa:", 5))
                        vesa = simple_strtoul(this_opt+5, NULL, 0);
                else if (!strncmp(this_opt, "font:", 5))
-                       strncpy(fontname, this_opt+5, sizeof(fontname)-1);
+                       strlcpy(fontname, this_opt+5, sizeof(fontname));
                else if (!strncmp(this_opt, "maxclk:", 7))
                        maxclk = simple_strtoul(this_opt+7, NULL, 0);
                else if (!strncmp(this_opt, "fh:", 3))
@@ -2374,7 +2374,7 @@ int __init matroxfb_setup(char *options) {
                else if (!strncmp(this_opt, "mem:", 4))
                        mem = simple_strtoul(this_opt+4, NULL, 0);
                else if (!strncmp(this_opt, "mode:", 5))
-                       strncpy(videomode, this_opt+5, sizeof(videomode)-1);
+                       strlcpy(videomode, this_opt+5, sizeof(videomode));
                else if (!strncmp(this_opt, "dfp:", 4)) {
                        dfp_type = simple_strtoul(this_opt+4, NULL, 0);
                        dfp = 1;
@@ -2454,7 +2454,7 @@ int __init matroxfb_setup(char *options) {
                        else if (!strcmp(this_opt, "dfp"))
                                dfp = value;
                        else {
-                               strncpy(videomode, this_opt, sizeof(videomode)-1);
+                               strlcpy(videomode, this_opt, sizeof(videomode));
                        }
                }
        }
index f6eeecfd7b7d8372ad4b16fecffb68657b2376ac..67b71d5a4ed225e9ff217e073ebf33fde4225c11 100644 (file)
@@ -250,8 +250,7 @@ p9100_init_fix(struct fb_info *info, int linebytes)
 {
        struct p9100_par *par = (struct p9100_par *)info->par;
 
-       strncpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id) - 1);
-       info->fix.id[sizeof(info->fix.id)-1] = 0;
+       strlcpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
index 2ae3a177280ebb1d47982881d8e80940e59af714..396dcae53d294b261614dcefeb380639b05c51c8 100644 (file)
@@ -2307,9 +2307,7 @@ static void __init pm2fb_mode_setup(char* options) {
 }
 
 static void __init pm2fb_font_setup(char* options) {
-
-       strncpy(pm2fb_options.font, options, sizeof(pm2fb_options.font));
-       pm2fb_options.font[sizeof(pm2fb_options.font)-1]='\0';
+       strlcpy(pm2fb_options.font, options, sizeof(pm2fb_options.font));
 }
 
 static void __init pm2fb_var_setup(char* options) {
index 5c101faf77c988c1d4ed873e089a14a3a9696bb4..a9d045b28c70a8fe8a472241f5857ce18842800a 100644 (file)
@@ -2631,8 +2631,7 @@ static void pm3fb_font_setup(char *lf, unsigned long board_num)
                DPRINTK(1, "Fontname %s too long\n", lf);
                return;
        }
-       strncpy(fontn[board_num], lf, lfs);
-       fontn[board_num][lfs] = '\0';
+       strlcpy(fontn[board_num], lf, lfs + 1);
 }
 
 static void pm3fb_bootdepth_setup(char *bds, unsigned long board_num)
index 4c8f33e5f99b3708a50bfa580fe99aa7d6730093..37da5a0a5e8f3071eff27ece36713973ab300afe 100644 (file)
@@ -2243,8 +2243,7 @@ static int __devinit radeon_set_fbinfo (struct radeonfb_info *rinfo)
         info->screen_base = (char *)rinfo->fb_base;
 
        /* Fill fix common fields */
-       strncpy(info->fix.id, rinfo->name, sizeof(info->fix.id));
-       info->fix.id[sizeof(info->fix.id) - 1] = '\0';
+       strlcpy(info->fix.id, rinfo->name, sizeof(info->fix.id));
         info->fix.smem_start = rinfo->fb_base_phys;
         info->fix.smem_len = rinfo->video_ram;
         info->fix.type = FB_TYPE_PACKED_PIXELS;
index 9167e229e352829927520f3bc97b53dcd2d01291..5b6d5aaa965f31edc7d37110a2114b4394a8cc3b 100644 (file)
@@ -1336,8 +1336,7 @@ int __init retz3fb_setup(char *options)
                        z3fb_inverse = 1;
                        fb_invert_cmaps();
                } else if (!strncmp(this_opt, "font:", 5)) {
-                       strncpy(fontname, this_opt+5, 39);
-                       fontname[39] = '\0';
+                       strlcpy(fontname, this_opt+5, sizeof(fontname));
                } else
                        z3fb_mode = get_video_mode(this_opt);
        }
@@ -1410,7 +1409,7 @@ int __init retz3fb_init(void)
                fb_info->switch_con = &z3fb_switch;
                fb_info->updatevar = &z3fb_updatevar;
                fb_info->flags = FBINFO_FLAG_DEFAULT;
-               strncpy(fb_info->fontname, fontname, 40);
+               strlcpy(fb_info->fontname, fontname, sizeof(fb_info->fontname));
 
                if (z3fb_mode == -1)
                        retz3fb_default = retz3fb_predefined[0].var;
index c5619452c70b62fd10699ed6d2df3f33a92cbcc3..24775fb3b3bf5392d46f67a6cbcfbd1b542950a4 100644 (file)
@@ -1462,7 +1462,7 @@ static int __devinit sstfb_probe(struct pci_dev *pdev,
                goto fail;
        }
        sst_get_memsize(info, &fix->smem_len);
-       strncpy(fix->id, spec->name, sizeof(fix->id));
+       strlcpy(fix->id, spec->name, sizeof(fix->id));
 
        iprintk("%s (revision %d) with %s dac\n",
                fix->id, par->revision, par->dac_sw.name);
index 954abaa9f953afb26a3fa2e3943b08dc9c79c5af..6016879e512240fcd6f28b723fa5c7adbd0078c6 100644 (file)
@@ -290,8 +290,7 @@ tcx_init_fix(struct fb_info *info, int linebytes)
        else
                tcx_name = "TCX24";
 
-       strncpy(info->fix.id, tcx_name, sizeof(info->fix.id) - 1);
-       info->fix.id[sizeof(info->fix.id)-1] = 0;
+       strlcpy(info->fix.id, tcx_name, sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
index fe861acde17f8958425043153acc6824a18b679a..2d13c0cbd62310ca17bcf1bc1b812b7e078abc28 100644 (file)
@@ -1341,8 +1341,7 @@ tgafb_init_fix(struct fb_info *info)
                break;
        }
 
-       strncpy(info->fix.id, tga_type_name, sizeof(info->fix.id) - 1);
-       info->fix.id[sizeof(info->fix.id)-1] = 0;
+       strlcpy(info->fix.id, tga_type_name, sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.type_aux = 0;