You are saving your string into a local array BUFF which will be stored on the stack.
When you call strtok to break it into tokens it will return pointers back into the BUFF array.
When you return from your function, the stack space is freed and may be reused by other parts of the program.
You need to store the string in a better place, e.g. in a global array or in a block of malloced memory.