for(i=1; i<=n; i++)
At this point, n is a char, not a number. It is a char '5' that is equal to 53. Which is why you're getting such a massive matrix. m is a char '6' which is equal to 54 also.
Add int values nNum and mNum:
int nNum, mNum;
/* ...code code */
n=buffer[0];
m=buffer[1];
//char field[n][m];
printf("\n n=%c m=%c\n",n,m);
nNum = (n - '0');
mNum = (m - '0');
Now use nNum and mNum everywhere for your loops and you will get the correct sized matrix.
Your other problem is here:
field[buffer[3]][buffer[4]]='c';
field[buffer[6]][buffer[7]]='e';
See? You're using chars as numbers again. Convert these to integers and then use them, and I think everything should work okay.