This was brought to my attention by Chris; looking at the code in commit
dc3f5aae0638 parsing of an individual parameter will terminate
prematurely if it is more than 255 characters and it will not be
recognised as expected, with the remaining characters being parsed as an
additional parameter.

For aarch64 the default command-line length is 2048 characters.

Having seem some examples of actual command-lines I'm not yet convinced
this commit is the cause - I'm currently building a reproducer to test
some ideas. One such is, looking at the Ubuntu 6.8 git commits, there's
a patch from upstream that fixes a command-line overflow:

commit 4e38935f02fa0 "init/main.c: Fix potential static_command_line
memory overflow" ( upstream commit 46dad3c1e57897)

We really need to see a complete kernel log capture using options
"earlyprintk debug" to see at what stage it breaks (and what the kernel
reports as the cmdline, and what exact kernel version it is); currently
I'm not convinced its the kernel failing here, but rather, the
initialramfs processing (since most of the kernel command-line arguments
shown are not kernel parameters at all; root= is but the 'squash:' type
prefix isn't handled by the kernel's init/ code.).

I haven't looked at MAAS but the command lines indicate it may be adding
scripts into the initialramfs that read the command-line.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2069534

Title:
  linux 6.8 fails to boot on arm64 if any param is more than 140 chars

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2069534/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to