mirror of
https://github.com/ps5-payload-dev/sdk.git
synced 2026-10-19 01:51:19 -05:00
crt: fix potential bug in designated initializers with union members
This commit is contained in:
1 parent
a0d2bc60bd
commit
a9e742489a
1 file changed
+10
-10
+10
-10
@@ -502,9 +502,7 @@ __kernel_init(payload_args_t* args) {
|
||||
**/
|
||||
static int
|
||||
kernel_write(unsigned long kaddr, void* data, unsigned long len) {
|
||||
kernel_pipebuf_t buf = {
|
||||
.vbuf.kaddr = kaddr
|
||||
};
|
||||
kernel_pipebuf_t buf = {0};
|
||||
|
||||
// sanity check for invalid kernel pointers
|
||||
if(!(kaddr & 0xffff000000000000)) {
|
||||
@@ -512,6 +510,8 @@ kernel_write(unsigned long kaddr, void* data, unsigned long len) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
buf.vbuf.kaddr = kaddr;
|
||||
|
||||
if(__crt_syscall(SYS_setsockopt, MASTER_SOCK, IPPROTO_IPV6, IPV6_PKTINFO,
|
||||
&buf, sizeof(buf))) {
|
||||
return -1;
|
||||
@@ -528,15 +528,15 @@ kernel_write(unsigned long kaddr, void* data, unsigned long len) {
|
||||
|
||||
int
|
||||
kernel_copyin(const void *uaddr, unsigned long kaddr, unsigned long len) {
|
||||
kernel_pipebuf_t buf = {
|
||||
.flags.reserved = 0x40000000
|
||||
};
|
||||
kernel_pipebuf_t buf = {0};
|
||||
|
||||
if(!kaddr || !uaddr || !len) {
|
||||
SET_ERRNO(EINVAL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
buf.flags.reserved = 0x40000000;
|
||||
|
||||
if(kernel_write(pipe_addr, &buf, sizeof(buf))) {
|
||||
return -1;
|
||||
}
|
||||
@@ -559,16 +559,16 @@ kernel_copyin(const void *uaddr, unsigned long kaddr, unsigned long len) {
|
||||
|
||||
int
|
||||
kernel_copyout(unsigned long kaddr, void *uaddr, unsigned long len) {
|
||||
kernel_pipebuf_t buf = {
|
||||
.flags.cnt = 0x40000000,
|
||||
.flags.in = 0x40000000,
|
||||
};
|
||||
kernel_pipebuf_t buf = {0};
|
||||
|
||||
if(!kaddr || !uaddr || !len) {
|
||||
SET_ERRNO(EINVAL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
buf.flags.cnt = 0x40000000;
|
||||
buf.flags.in = 0x40000000;
|
||||
|
||||
if(kernel_write(pipe_addr, &buf, sizeof(buf))) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user