Re: pstore/ram: printk: NULL characters in pstore ramoops area

Kees Cook
2023-08-10T23:51:02Z

On Thu, Aug 10, 2023 at 04:32:58PM -0700, Vijay Balakrishna wrote:
> On 8/4/23 00:59, Kees Cook wrote:
> > Is the issue present in modern kernels?
>
> Yes, the issue present in mainline kernel, I can repro on a x86_64 VM with v6.5.0-rc5 kernel.
>
> $ uname -a
> Linux vijay-vm3 6.5.0-rc5-ramoops #10 SMP PREEMPT_DYNAMIC Thu Aug 10 17:24:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
> $ cat /proc/cmdline
> BOOT_IMAGE=/boot/vmlinuz-6.5.0-rc5-ramoops root=UUID=xx ro mem=8188M ramoops.mem_address=0x2BFC00000 ramoops.mem_size=0x400000 ramoops.max_reason=5 ramoops.record_size=0x80000 console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300
>
> (excerpt from /var/lib/systemd/pstore/dmesg-ramoops-0 after warm reboot)
> <5>[ 0.000000] Linux version 6.5.0-rc5-ramoops (vijay@vijay-vm1) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #10 SMP PREEMPT_DYNAMIC Thu Aug 10 17:24:39 UTC 2023
> ..
> <6>[ 0.463984] Calibrating delay loop (skipped), value calculated using timer frequency.. ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
>
> (hex dump output)
>
> 00003160 61 6c 63 75 6c 61 74 65 64 20 75 73 69 6e 67 20 |alculated using |
> 00003170 74 69 6d 65 72 20 66 72 65 71 75 65 6e 63 79 2e |timer frequency.|
> 00003180 2e 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |. ..............|
> 00003190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
> 000031a0 00 0a 3c 36 3e 5b 20 20 20 20 30 2e 34 36 37 39 |..<6>[ 0.4679|

Can you share the .config you're building with? And what are you using
to trigger an Oops? I will see if I can reproduce this...

--
Kees Cook