On Mon, Aug 08, 2022 at 08:20:09AM +0200, Ahmad Fatoum wrote: > All callsites of digest_alloc(_by_algo) check for NULL pointer before > proceeding except for machine_id_set_globalvar(). Fix this to fail > more gracefully instead of the crash I ran into. > > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > common/machine_id.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/common/machine_id.c b/common/machine_id.c > index a530fdeb1da8..189e74bd6796 100644 > --- a/common/machine_id.c > +++ b/common/machine_id.c > @@ -30,14 +30,15 @@ static int machine_id_set_globalvar(void) > unsigned char machine_id[SHA1_DIGEST_SIZE]; > char hex_machine_id[MACHINE_ID_LENGTH]; > char *env_machine_id; > - int ret; > + int ret = -EOPNOTSUPP; > > /* nothing to do if no hashable information provided */ > if (!__machine_id_hashable) > return 0; > > digest = digest_alloc_by_algo(HASH_ALGO_SHA1); Had to read this twice to be sure it's correct. A plain if (!digest) { ret = -EOPNOTSUPP; goto out; } seems easier to follow. Sascha > - ret = digest_init(digest); > + if (digest) > + ret = digest_init(digest); > if (ret) > goto out; > > -- > 2.30.2 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |