hey guys i m trying to create a dll of a function so that i can use it in my c# program ..but on running the program an error occurs of

Debug error
runtime check failiure no 2 : stack around variable pth was corrupted


any suggestions what am i doing wrong here is the code
Code:
// code1.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
//#include <iostream.h>
#include <winnt.h>
#include <Winbase.h>
#include <conio.h>
#include<string.h>
#include<malloc.h>


#ifdef _MANAGED
#pragma managed(push, off)
#endif

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
    return TRUE;
}




extern "C"
{
	__declspec(dllexport) bool WriteSector(char* path,int sector,int index,int code)
{
	char* buff = (char*)malloc (512);

HANDLE h;
DWORD br;
char pth[10] ="\\\\.\\";
strcat(pth,path);
h=CreateFileA(pth,GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, NULL); 
SetFilePointer(h,(sector*512),NULL,FILE_BEGIN);
ReadFile(h,buff,512,&br,NULL);

if(code==1)
buff[index]=64;
if(code==2)
buff[index]=32;
if(code==3)
buff[index]=16;
DWORD bytesN=0;
SetFilePointer(h,512*sector,NULL,FILE_BEGIN);
bool g=WriteFile(h,buff,512,&bytesN,NULL);
CloseHandle(h);
 return g;
}


//int _tmain(int argc, TCHAR* argv[])

}

#ifdef _MANAGED
#pragma managed(pop)
#endif


this is the signature i am using for c#

Code:
[DllImport("code1.dll")]
        public static extern bool WriteSector(String path, int sector, int index, int code);
any suggestion what iam doin wrong plz