[LTP] [PATCH v1] Fixes: #776, tst_taint prints human readable error messages instead of numerical codes

Petr Vorel pvorel@suse.cz
Tue Jan 18 14:00:21 CET 2022


Hi Martin, Kushal,

...
> > +const char *tst_strtaint(int err)
> > +{
> > +	static const struct pair taint_pairs[] = {
> > +		STRPAIR(TST_TAINT_A, "TAINT_A(ACPI table overridden)")
> > +		STRPAIR(TST_TAINT_B, "TAINT_B(Bad page reference)")
> > +		STRPAIR(TST_TAINT_C, "TAINT_C(Staging driver loaded)")
> > +		STRPAIR(TST_TAINT_D, "TAINT_D(OOPS/BUG)")
> > +		STRPAIR(TST_TAINT_E, "TAINT_E(Unsigned module loaded)")
> > +		STRPAIR(TST_TAINT_F, "TAINT_F(Module force loaded)")
> > +		STRPAIR(TST_TAINT_G, "TAINT_G(Propriety module loaded)")
> > +		STRPAIR(TST_TAINT_I, "TAINT_I(Workaround BIOS/FW bug)")
> > +		STRPAIR(TST_TAINT_K, "TAINT_K(Live patched)")
> > +		STRPAIR(TST_TAINT_L, "TAINT_L(Soft lock up occured)")
> > +		STRPAIR(TST_TAINT_M, "TAINT_M(Machine check exception)")
> > +		STRPAIR(TST_TAINT_O, "TAINT_O(Out of tree module loaded)")
> > +		STRPAIR(TST_TAINT_R, "TAINT_R(Module force unloaded)")
> > +		STRPAIR(TST_TAINT_S, "TAINT_S(Running on out of spec system)")
> > +		STRPAIR(TST_TAINT_T, "TAINT_T(Built with struct randomization)")
> > +		STRPAIR(TST_TAINT_U, "TAINT_U(User request)")
> > +		STRPAIR(TST_TAINT_W, "TAINT_W(Warning)")
> > +		STRPAIR(TST_TAINT_X, "TAINT_X(Auxilary)")
> > +	};
> > +
> > +	PAIR_LOOKUP(taint_pairs, err);

> This is not the correct approach. You've constructed an array with
> 131,073 items to store a total of 18 strings. And the value passed in
> the "err" parameter is a bitmask which can hold multiple taint flags.

> What you should do is this:

> const char *taint_strings[] = {
> 	"G (Propriety module loaded)",
> 	"F (Module force loaded)",
> 	"S (Running on out of spec system)",
> 	"R (Module force unloaded)",
> 	...
> 	"X (Auxilary)",
> 	"T (Built with struct randomization)"
> };

> Then loop from 0 to ARRAY_SIZE(taint_strings) and print taint_strings[i]
> if (err & (1 << i)) != 0

Martin thanks a lot for correcting me. Kushal, I'm sorry for wrong advice,
please follow Martin's suggestion in v3.

Kind regards,
Petr


More information about the ltp mailing list