mirror of
https://github.com/topjohnwu/Magisk.git
synced 2024-11-27 20:15:29 +00:00
Prevent setting zero over than bound
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: npes87184 <npes87184@gmail.com>
This commit is contained in:
parent
c0ca99f4b4
commit
312466aaf8
@ -75,7 +75,7 @@ struct device {
|
||||
|
||||
static void parse_cmdline(struct cmdline *cmd) {
|
||||
// cleanup
|
||||
memset(cmd, 0, sizeof(&cmd));
|
||||
memset(cmd, 0, sizeof(*cmd));
|
||||
|
||||
char cmdline[4096];
|
||||
mkdir("/proc", 0555);
|
||||
|
Loading…
Reference in New Issue
Block a user