Re: [pseudo] [PATCH 1/7] pseudo.h: Avoid accessing unallocated memory
Mark Hatle <[email protected]> Wed, 1 Jul 2026 11:40:21 -0500
| Newsgroups | org.yoctoproject.lists.yocto-patches |
|---|---|
| Message-ID | <[email protected]> |
On 7/1/26 8:13 AM, Richard Purdie wrote: > We can call STARTSWITH in cases where the item being searched for is longer > than the string itself. Switch from memcmp to strncmp to avoid accessing > unassigned memory. > > Signed-off-by: Richard Purdie <[email protected]> > --- > pseudo.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/pseudo.h b/pseudo.h > index b6c13f2..1152c19 100644 > --- a/pseudo.h > +++ b/pseudo.h > @@ -99,7 +99,7 @@ extern char *pseudo_version; > #define PSEUDO_LIBDIR "lib" > #endif > > -#define STARTSWITH(x, y) (!memcmp((x), (y), sizeof(y) - 1)) > +#define STARTSWITH(x, y) (strncmp(y, x, strlen(y)) == 0) I've not looked at the users of STARTSWITH. If they are all strings this is fine. I believe memcmp was originally used because it could be items with nulls in it. The bug may be that 'sizeof' was not calculated properly (specifically checking both X and Y, only y.. which can lead that the issue.) > > #ifndef PSEUDO_LOCALSTATEDIR > #define PSEUDO_LOCALSTATEDIR "var/pseudo"