[lvm-devel] [PATCH] Missing error checking in cmirrord
Milan Broz
mbroz at redhat.com
Mon Jun 21 20:11:56 UTC 2010
On 06/18/2010 11:10 PM, Jonathan Brassow wrote:
> There are missing error checks... it's possible for
> sprintf to fail.
>
> brassow
>
> Index: LVM2/daemons/cmirrord/functions.c
> ===================================================================
> --- LVM2.orig/daemons/cmirrord/functions.c
> +++ LVM2/daemons/cmirrord/functions.c
> @@ -1371,15 +1371,21 @@ static int clog_get_sync_count(struct dm
>
> static int core_status_info(struct log_c *lc __attribute((unused)), struct dm_ulog_request *rq)
> {
> + int r;
> char *data = (char *)rq->data;
>
> - rq->data_size = sprintf(data, "1 clustered-core");
rq->data_size = 0;
> + r = sprintf(data, "1 clustered-core");
> + if (r < 0)
> + return r;
> +
> + rq->data_size = r;
rq->data_size = r + 1;
sprintf does not count trailing \0 ... (and this is probably part of
the mysterious fails of cmirrord).
Milan
More information about the lvm-devel
mailing list