[pacman-dev] [PATCH] pacman/upgrade: Check malloc() return value

Sören Brinkmann soeren.brinkmann at gmail.com
Sat Mar 8 02:07:51 EST 2014


On Sat, 2014-03-08 at 05:02PM +1000, Allan McRae wrote:
> On 07/03/14 16:24, Sören Brinkmann wrote:
> > Check the return value of malloc() before dereferencing the returned pointer.
> > 
> > Signed-off-by: Sören Brinkmann <soeren.brinkmann at gmail.com>
> > ---
> >  src/pacman/upgrade.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/src/pacman/upgrade.c b/src/pacman/upgrade.c
> > index 5416f6180b39..19aa17218ce4 100644
> > --- a/src/pacman/upgrade.c
> > +++ b/src/pacman/upgrade.c
> > @@ -51,6 +51,9 @@ int pacman_upgrade(alpm_list_t *targets)
> >  	 */
> >  	for(i = targets; i; i = alpm_list_next(i)) {
> >  		int *r = malloc(sizeof(int));
> > +		if(r == NULL) {
> > +			return 1;
> > +		}
> >  
> >  		if(strstr(i->data, "://")) {
> >  			char *str = alpm_fetch_pkgurl(config->handle, i->data);
> > 
> 
> Fine. Although if malloc of an int fails, I'm not sure we can do a lot!

Right, but bailing out gracefully is probably better than a segfault? I
do not really mind. If you don't want it, don't apply it. But not
checking the return value of malloc() is simply wrong, IMHO.

	Sören


More information about the pacman-dev mailing list