Fix derp
This commit is contained in:
parent
a3fd55036a
commit
5e8990f571
@ -49,7 +49,7 @@ diff -uNr a/source/brahma.c b/source/brahma.c
|
|||||||
+ if (p) {
|
+ if (p) {
|
||||||
+ fseek(p , 0, SEEK_END);
|
+ fseek(p , 0, SEEK_END);
|
||||||
+ psize = ftell(p);
|
+ psize = ftell(p);
|
||||||
+ if (psize > 5 && psize < 39) {
|
+ if (psize > 5 && psize < 40) {
|
||||||
+ char path[psize + 1];
|
+ char path[psize + 1];
|
||||||
+
|
+
|
||||||
+ fseek(p, 0, SEEK_SET);
|
+ fseek(p, 0, SEEK_SET);
|
||||||
@ -58,7 +58,7 @@ diff -uNr a/source/brahma.c b/source/brahma.c
|
|||||||
+ if (bytes_read == psize) {
|
+ if (bytes_read == psize) {
|
||||||
+ if (path[psize - 1] == 0xA) psize--;
|
+ if (path[psize - 1] == 0xA) psize--;
|
||||||
+ if (path[psize - 1] == 0xD) psize--;
|
+ if (path[psize - 1] == 0xD) psize--;
|
||||||
+ if (psize > 5 && path[0] == '/' && memcmp(&path[psize - 4], ".bin", 4)) {
|
+ if (psize > 5 && psize < 38 && path[0] == '/' && memcmp(&path[psize - 4], ".bin", 4)) {
|
||||||
+ path[psize] = 0;
|
+ path[psize] = 0;
|
||||||
+ f = fopen(path, "rb");
|
+ f = fopen(path, "rb");
|
||||||
+ use_default = false;
|
+ use_default = false;
|
||||||
|
@ -102,14 +102,14 @@ void patchFirmlaunches(u8 *pos, u32 size, u32 process9MemAddr)
|
|||||||
|
|
||||||
u32 pathSize = getFileSize(pathPath);
|
u32 pathSize = getFileSize(pathPath);
|
||||||
|
|
||||||
if(pathSize > 5 && pathSize < 39)
|
if(pathSize > 5 && pathSize < 40)
|
||||||
{
|
{
|
||||||
u8 path[pathSize];
|
u8 path[pathSize];
|
||||||
fileRead(path, pathPath, 0);
|
fileRead(path, pathPath, 0);
|
||||||
if(path[pathSize - 1] == 0xA) pathSize--;
|
if(path[pathSize - 1] == 0xA) pathSize--;
|
||||||
if(path[pathSize - 1] == 0xD) pathSize--;
|
if(path[pathSize - 1] == 0xD) pathSize--;
|
||||||
|
|
||||||
if(pathSize > 5 && path[0] == '/' && memcmp(&path[pathSize - 4], ".bin", 4) == 0)
|
if(pathSize > 5 && pathSize < 38 && path[0] == '/' && memcmp(&path[pathSize - 4], ".bin", 4) == 0)
|
||||||
{
|
{
|
||||||
u16 finalPath[pathSize + 1];
|
u16 finalPath[pathSize + 1];
|
||||||
for(u32 i = 0; i < pathSize; i++)
|
for(u32 i = 0; i < pathSize; i++)
|
||||||
@ -117,7 +117,7 @@ void patchFirmlaunches(u8 *pos, u32 size, u32 process9MemAddr)
|
|||||||
finalPath[pathSize] = 0;
|
finalPath[pathSize] = 0;
|
||||||
|
|
||||||
u8 *pos_path = memsearch(off, u"sd", reboot_size, 4) + 0xA;
|
u8 *pos_path = memsearch(off, u"sd", reboot_size, 4) + 0xA;
|
||||||
memcpy(pos_path, finalPath, pathSize);
|
memcpy(pos_path, finalPath, (pathSize + 1) * 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user