Is this code safe? If not, why?

```c

include <stdio.h>

typedef char *string;

string prompt(string message) { printf("%s", message); string input = (char*) malloc(sizeof(char) * 100); char c; size_t size = 0;

while ((c = fgetc(stdin)) != '\n') { if (size > 99) { free(input); return ""; } input[size] = c; size++; } input[size + 1] = '\0'; return input; } ```