• npes87184's avatar
    Prevent setting zero over than bound · 312466aa
    npes87184 authored
    The &cmd will return a pointer which point to a pointer of cmdline.
    It is a memory address which is usually 8 bytes in 64 bits machine.
    
    However, the struct cmdline is 4 bytes. This will cause setting zero
    beyond the bound.
    
    Below is a simple example to show the differentiation:
    
    struct cmdline {
            char skip_initramfs;
            char slot[3];
    };
    
    static void parse_cmdline(struct cmdline *cmd)
    {
            printf("%lu\n", sizeof(*cmd)); /* 4 */
            printf("%lu\n", sizeof(&cmd)); /* 8 */
    }
    
    int main()
    {
            struct cmdline cmd;
            parse_cmdline(&cmd);
            return 0;
    }
    
    This patch prevents this.
    Signed-off-by: 's avatarnpes87184 <npes87184@gmail.com>
    312466aa
magiskinit.c 12.9 KB