Re: [PATCH] befs: use strlcpy()

From: Andreas Schwab
Date: Sun Oct 30 2005 - 05:45:46 EST


Alexey Dobriyan <adobriyan@xxxxxxxxx> writes:

> --- a/fs/befs/btree.c
> +++ b/fs/befs/btree.c
> @@ -503,10 +503,9 @@ befs_btree_read(struct super_block *sb,
> goto error_alloc;
> };
>
> - strncpy(keybuf, keystart, keylen);
> + strlcpy(keybuf, keystart, keylen);
> *value = fs64_to_cpu(sb, valarray[cur_key]);
> *keysize = keylen;
> - keybuf[keylen] = '\0';

You are now cutting off the last character of the string. keylen is the
exact size of the string to be copied, _not_ the size of the buffer (which
is bufsize and guaranteed to be big enough at this point).

Andreas.

--
Andreas Schwab, SuSE Labs, schwab@xxxxxxx
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/