Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys

> > I've tested with an i386 kernel.  I'd rather not make those changes  
> > conditional so I'll see if I can work out why the Atari kernel would  
> > have problems.  If no CTF section is found then ksyms should behave  
> > exactly as it did before the change, just with an empty CTF section.
> Ok, I'll check what happens on initialization,
> but should it work even with old bootloaders?

It looks more sanity checks are required in ksyms_addsyms_elf().

        /* Find the CTF section */
        shdr = (Elf_Shdr *)((uint8_t *)start + ehdr->e_shoff);
        if (ehdr->e_shstrndx != 0) {
                char *shstr = (uint8_t*)start +
                for (i = 1; i < ehdr->e_shnum; i++) {
                        if (shdr[i].sh_type != SHT_PROGBITS)
                        if (strncmp(".SUNW_ctf", &shstr[shdr[i].sh_name] ,10) 
!= 0)

My atari kernel hangs in this strncmp().
shstr is 0x4c60f4 and it looks invalid because
kernel end is 0x277d48 and shdr is 0x277d7c.

(BTW, please also use KNF properly)
Izumi Tsutsui

Home | Main Index | Thread Index | Old Index