I'm trying to use a for loop to create new structures of a linked list, but I keep overwriting the last struct and I don't know how to fix it.

Code:

struct node *make_linked_list(char *pointArray[], int N, int polyNumber) {
struct node *first, *current, *newNode, *o;
char *term, *poly, sign = ' ';
int i, num;
poly = pointArray[0];
//beginning of the linked list
current = calloc(1,sizeof(struct node));
first = current;
/* Read the first term of the polynomial. From there, a new node will be created
* for each term. Do this for however many polynomials are in the file.
*/
term = strtok(poly, " ");
for(i=0; term != NULL; i++) {
term = strtok(NULL, " ");
.
.
.
newNode = calloc(1,sizeof(struct node));
current->next = newNode;
current = current->next;
return first
}