Commit 48360246 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Boris Brezillon
Browse files

mtd: Use kasprintf() instead of fixed buffer formatting



Using "%4.4X" in the calculation of the buffer size is misleading, as
the format string literal has no relation to the actual size needed.
Hence this is fragile w.r.t. future modification.

As this is not a hot path, fix this by replacing the formatting in a
fixed buffer by kasprintf().

Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
parent 98534a58
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -202,16 +202,19 @@ static inline struct mtd_info *cfi_cmdset_unknown(struct map_info *map,
	struct cfi_private *cfi = map->fldrv_priv;
	__u16 type = primary?cfi->cfiq->P_ID:cfi->cfiq->A_ID;
#ifdef CONFIG_MODULES
	char probename[sizeof("cfi_cmdset_%4.4X")];
	cfi_cmdset_fn_t *probe_function;
	char *probename;

	sprintf(probename, "cfi_cmdset_%4.4X", type);
	probename = kasprintf(GFP_KERNEL, "cfi_cmdset_%4.4X", type);
	if (!probename)
		return NULL;

	probe_function = __symbol_get(probename);
	if (!probe_function) {
		request_module("cfi_cmdset_%4.4X", type);
		probe_function = __symbol_get(probename);
	}
	kfree(probename);

	if (probe_function) {
		struct mtd_info *mtd;