diff --git a/common/launch.c b/common/launch.c index 16e660c..7bd8684 100644 --- a/common/launch.c +++ b/common/launch.c @@ -2,7 +2,7 @@ size_t launchAddArg(argData_s* ad, const char* arg) { size_t len = strlen(arg)+1; - if ((ad->dst+len) >= (char*)(ad+1)) return len; // Overflow + if ((ad->dst+len) >= (char*)(ad->buf + sizeof(ad->buf))) return len; // Overflow ad->buf[0]++; strcpy(ad->dst, arg); ad->dst += len; diff --git a/common/netloader.c b/common/netloader.c index 6595148..dd3ad6a 100644 --- a/common/netloader.c +++ b/common/netloader.c @@ -464,6 +464,8 @@ int loadnro(menuEntry_s *me, int sock, struct in_addr remote) { } if (response == 0 ) { + if (netloaded_cmdlen > sizeof(me->args.buf)-1) netloaded_cmdlen = sizeof(me->args.buf)-1; + len = recvall(sock,me->args.dst, netloaded_cmdlen,0); if (len != netloaded_cmdlen) {