From: Karel Zak Date: Tue, 27 Jul 2021 11:29:05 +0000 (+0200) Subject: libblkid: use snprintf() rather than sprintf() X-Git-Tag: v2.38-rc1~352 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=822324953e8a0e258f734fed410e5be9433bc1bf;p=thirdparty%2Futil-linux.git libblkid: use snprintf() rather than sprintf() --- diff --git a/libblkid/src/devname.c b/libblkid/src/devname.c index 5b445b0114..90a8245fc9 100644 --- a/libblkid/src/devname.c +++ b/libblkid/src/devname.c @@ -164,7 +164,7 @@ static int is_dm_leaf(const char *devname) strncmp(de->d_name, "dm-", 3) != 0 || strlen(de->d_name) > sizeof(path)-32) continue; - sprintf(path, "/sys/block/%s/slaves", de->d_name); + snprintf(path, sizeof(path), "/sys/block/%s/slaves", de->d_name); if ((d_dir = opendir(path)) == NULL) continue; while ((d_de = readdir(d_dir)) != NULL) { @@ -321,14 +321,16 @@ static void lvm_probe_all(blkid_cache cache, int only_if_new) char *vdirname; char *vg_name; struct dirent *lv_iter; + size_t len; vg_name = vg_iter->d_name; if (!strcmp(vg_name, ".") || !strcmp(vg_name, "..")) continue; - vdirname = malloc(vg_len + strlen(vg_name) + 8); + len = vg_len + strlen(vg_name) + 8; + vdirname = malloc(len); if (!vdirname) goto exit; - sprintf(vdirname, "%s/%s/LVs", VG_DIR, vg_name); + snprintf(vdirname, len, "%s/%s/LVs", VG_DIR, vg_name); lv_list = opendir(vdirname); free(vdirname); @@ -342,16 +344,16 @@ static void lvm_probe_all(blkid_cache cache, int only_if_new) if (!strcmp(lv_name, ".") || !strcmp(lv_name, "..")) continue; - lvm_device = malloc(vg_len + strlen(vg_name) + - strlen(lv_name) + 8); + len = vg_len + strlen(vg_name) + strlen(lv_name) + 8; + lvm_device = malloc(len); if (!lvm_device) { closedir(lv_list); goto exit; } - sprintf(lvm_device, "%s/%s/LVs/%s", VG_DIR, vg_name, + snprintf(lvm_device, len, "%s/%s/LVs/%s", VG_DIR, vg_name, lv_name); dev = lvm_get_devno(lvm_device); - sprintf(lvm_device, "%s/%s", vg_name, lv_name); + snprintf(lvm_device, len, "%s/%s", vg_name, lv_name); DBG(DEVNAME, ul_debug("Probe LVM dev %s: devno 0x%04X", lvm_device, (unsigned int) dev)); diff --git a/libblkid/src/save.c b/libblkid/src/save.c index 9a342c69cf..1a617c072e 100644 --- a/libblkid/src/save.c +++ b/libblkid/src/save.c @@ -128,9 +128,10 @@ int blkid_flush_cache(blkid_cache cache) * a temporary file then we open it directly. */ if (ret == 0 && S_ISREG(st.st_mode)) { - tmp = malloc(strlen(filename) + 8); + size_t len = strlen(filename) + 8; + tmp = malloc(len); if (tmp) { - sprintf(tmp, "%s-XXXXXX", filename); + snprintf(tmp, len, "%s-XXXXXX", filename); fd = mkstemp_cloexec(tmp); if (fd >= 0) { if (fchmod(fd, 0644) != 0) @@ -178,10 +179,11 @@ int blkid_flush_cache(blkid_cache cache) DBG(SAVE, ul_debug("unlinked temp cache %s", opened)); } else { char *backup; + size_t len = strlen(filename) + 5; - backup = malloc(strlen(filename) + 5); + backup = malloc(len); if (backup) { - sprintf(backup, "%s.old", filename); + snprintf(backup, len, "%s.old", filename); unlink(backup); if (link(filename, backup)) { DBG(SAVE, ul_debug("can't link %s to %s",