Hi Vivek,

On 29/08/2026 09:31, Vivek Ray wrote:
> Hi Casey,
> 
> Hope you're doing well. I wanted to follow up on this patch once more.
> Wanted to make sure it hadn't been lost track of.
> 
> You kindly gave it a Reviewed-by back on June 17, and I haven't seen any
> further activity on it , Patchwork still showing it as "New". I just
> wanted to check whether it's been picked up into your tree, or if
> there's anything still needed from my end.

My apologies, I think this slipped through and didn't get picked in my
last PR. I'll pick it up shortly.

Thanks and kind regards,
> 
> Thanks again for your time and review.
> 
> Regards,
> Vivek Ray
> 
> On Wed, Jun 17, 2026 at 8:26 PM Casey Connolly
> <[email protected] <mailto:[email protected]>> wrote:
> 
>     Hi Vivek,
> 
>     On 10/06/2026 15:54, Vivek Ray wrote:
>     > The configure_env() function copies root compatible strings into a
>     > 32-byte buffer prior to parsing. If a compatible string exceeds this
>     > limit, strlcpy() silently truncates it, producing a malformed fdtfile
>     > path and a silent boot failure with no indication of the root cause.
>     >
>     > Bump buf[] to 128 bytes and dt_path[] to 256 bytes to accommodate
>     longer
>     > compatible strings. Also, add explicit truncation checks after both
>     > strlcpy() calls and emit a log_warning() with the offending compatible
>     > string to make such failures easier to diagnose.
>     >
>     > Signed-off-by: Vivek Ray <[email protected]
>     <mailto:[email protected]>>
> 
>     Thanks for the quick respin!
> 
>     Reviewed-by: Casey Connolly <[email protected]
>     <mailto:[email protected]>>
> 
>     >
>     > ---
>     >
>     > Changes in V2:
>     > - Bump buf[] from 32 to 128 bytes and dt_path[] from 64 to 256
>     (Casey Connolly)
>     > - Fix line size check, use > not >= (Casey Connolly)
>     >
>     > ---
>     >  arch/arm/mach-snapdragon/board.c | 18 ++++++++++++++----
>     >  1 file changed, 14 insertions(+), 4 deletions(-)
>     >
>     > diff --git a/arch/arm/mach-snapdragon/board.c b/arch/arm/mach-
>     snapdragon/board.c
>     > index 829a0109ac7..d9390d9b5d3 100644
>     > --- a/arch/arm/mach-snapdragon/board.c
>     > +++ b/arch/arm/mach-snapdragon/board.c
>     > @@ -390,13 +390,14 @@ static void configure_env(void)
>     >  {
>     >       const char *first_compat, *last_compat;
>     >       char *tmp;
>     > -     char buf[32] = { 0 };
>     > +     char buf[128] = { 0 };
>     > +     int len = 0;
>     >       /*
>     >        * Most DTB filenames follow the scheme: qcom/<soc>-
>     [vendor]-<board>.dtb
>     >        * The vendor is skipped when it's a Qualcomm reference
>     board, or the
>     >        * db845c.
>     >        */
>     > -     char dt_path[64] = { 0 };
>     > +     char dt_path[256] = { 0 };
>     >       int compat_count, ret;
>     >       ofnode root;
>     > 
>     > @@ -417,7 +418,11 @@ static void configure_env(void)
>     >               return;
>     >       }
>     > 
>     > -     strlcpy(buf, first_compat, sizeof(buf) - 1);
>     > +     /* A safety check to avoid silent failure due to name
>     truncation */
>     > +     len = strlcpy(buf, first_compat, sizeof(buf) - 1);
>     > +     if (len > sizeof(buf) - 1)
>     > +             log_warning("compatible '%s' got truncated, fdtfile
>     name too long\n",
>     > +                         first_compat);
>     >       tmp = buf;
>     > 
>     >       /* The Qualcomm reference boards (RBx, HDK, etc)  */
>     > @@ -468,7 +473,12 @@ static void configure_env(void)
>     > 
>     >               /* Copy the last compat (e.g. "qcom,sdm845") into buf */
>     >               memset(buf, 0, sizeof(buf));
>     > -             strlcpy(buf, last_compat, sizeof(buf) - 1);
>     > +
>     > +             /* check for name truncation */
>     > +             len = strlcpy(buf, last_compat, sizeof(buf) - 1);
>     > +             if (len > sizeof(buf) - 1)
>     > +                     log_warning("compatible '%s' got truncated,
>     fdtfile name too long\n",
>     > +                                 last_compat);
>     >               tmp = buf;
>     > 
>     >               /* strsep() is destructive, it replaces the comma
>     with a \0 */
> 
>     -- 
>     // Casey (she/her)
> 

-- 
// Casey (she/her)

Reply via email to