CreateSema: Truncate and validate like the PSP.

This commit is contained in:
Unknown W. Brackets 2012-11-16 01:26:04 -08:00
parent 0ab19c18e5
commit dd14450424

View file

@ -120,11 +120,15 @@ void sceKernelCancelSema(SceUID id, int newCount, u32 numWaitThreadsPtr)
//SceUID sceKernelCreateSema(const char *name, SceUInt attr, int initVal, int maxVal, SceKernelSemaOptParam *option);
SceUID sceKernelCreateSema(const char* name, u32 attr, int initVal, int maxVal, u32 optionPtr)
{
if (!name)
return SCE_KERNEL_ERROR_ERROR;
Semaphore *s = new Semaphore;
SceUID id = kernelObjects.Create(s);
s->ns.size = sizeof(NativeSemaphore);
strncpy(s->ns.name, name, 32);
strncpy(s->ns.name, name, 31);
s->ns.name[31] = 0;
s->ns.attr = attr;
s->ns.initCount = initVal;
s->ns.currentCount = s->ns.initCount;