[make-initrd] [PATCH 1/3] Reimplement ueventd

Alexey Gladkov legion at altlinux.ru
Mon May 15 11:52:10 MSK 2023


On Sun, May 14, 2023 at 11:57:53PM +0300, Leonid Krivoshein wrote:
> 
> On 5/4/23 16:42, Alexey Gladkov wrote:
> > [...]
> > diff --git a/datasrc/ueventd/memory.c b/datasrc/ueventd/memory.c
> > new file mode 100644
> > index 00000000..cb911d58
> > --- /dev/null
> > +++ b/datasrc/ueventd/memory.c
> > @@ -0,0 +1,32 @@
> > +/* SPDX-License-Identifier: GPL-2.0-or-later */
> > +
> > +#include <string.h>
> > +#include <stdlib.h>
> > +#include <stdarg.h>
> > +#include <stdio.h>
> > +#include <errno.h>
> > +#include <error.h>
> > +#include <limits.h>
> > +
> > +#include "ueventd.h"
> > +
> > +void *xcalloc(size_t nmemb, size_t size)
> > +{
> > +	void *r = calloc(nmemb, size);
> > +	if (!r)
> > +		fatal("calloc: allocating %lu*%lu bytes: %m",
> > +		      (unsigned long) nmemb, (unsigned long) size);
> 
> Есть "%zu".

Да, согласен.

> 
> > +	return r;
> > +}
> > +
> > +char *xasprintf(char **ptr, const char *fmt, ...)
> > +{
> > +	va_list arg;
> > +
> > +	va_start(arg, fmt);
> > +	if (vasprintf(ptr, fmt, arg) < 0)
> 
> Здесь и
> 
> > +		fatal("vasprintf: %m");
> > +	va_end(arg);
> > +
> > +	return *ptr;
> 
> и тут возможно разыменование ссылки на NULL, поскольку ptr в коде не 
> проверяется и в заголовочном файле xasprintf() не объявлен как nonnull(1).

Согласен. Нужно добавить аттрибут nonnull(1,2).

> 
> > +}
> > [...]
> 
> 
> -- 
> WBR, Leonid Krivoshein.
> _______________________________________________
> Make-initrd mailing list
> Make-initrd at lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/make-initrd

-- 
Rgrds, legion



More information about the Make-initrd mailing list