From 0ec23dc90ad6d9916755b3cf80c8ac659a1e6593 Mon Sep 17 00:00:00 2001 From: yellows8 Date: Fri, 29 May 2015 17:15:55 -0400 Subject: [PATCH] In APT_CheckNew3DS_*, properly load+check the retval from the cmdbuf when svcSendSyncRequest was successful. In APT_CheckNew3DS(), added code to check for out nullptr, and code to clear out. --- libctru/source/services/apt.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libctru/source/services/apt.c b/libctru/source/services/apt.c index 7fdad04..35771cd 100644 --- a/libctru/source/services/apt.c +++ b/libctru/source/services/apt.c @@ -1101,13 +1101,15 @@ Result APT_CheckNew3DS_Application(Handle* handle, u8 *out) Result ret=0; if((ret=svcSendSyncRequest(*handle)))return ret; + if(ret==0)ret = cmdbuf[1]; + if(out) { *out = 0; if(ret==0)*out=cmdbuf[2]; } - return cmdbuf[1]; + return ret; } Result APT_CheckNew3DS_System(Handle* handle, u8 *out) @@ -1120,19 +1122,25 @@ Result APT_CheckNew3DS_System(Handle* handle, u8 *out) Result ret=0; if((ret=svcSendSyncRequest(*handle)))return ret; + if(ret==0)ret = cmdbuf[1]; + if(out) { *out = 0; if(ret==0)*out=cmdbuf[2]; } - return cmdbuf[1]; + return ret; } Result APT_CheckNew3DS(Handle* handle, u8 *out) { Result ret=0; + if(out==NULL)return -1; + + *out = 0; + if(__apt_new3dsflag_initialized) { *out = __apt_new3dsflag;