Use linked list for gadgets chaining

不要用 `strcpy()`，至少要用 `strncpy()`，而且仍然要檢查邊界