kernel/fs/btrfs/rcu-string.h
.. .. @@ -8,7 +8,7 @@ 8 8 9 9 struct rcu_string { 10 10 struct rcu_head rcu; 11 - char str[0];11 + char str[];12 12 }; 13 13 14 14 static inline struct rcu_string *rcu_string_strdup(const char *src, gfp_t mask) .. .. @@ -18,7 +18,11 @@ 18 18 (len * sizeof(char)), mask); 19 19 if (!ret) 20 20 return ret; 21 - strncpy(ret->str, src, len);21 + /* Warn if the source got unexpectedly truncated. */22 + if (WARN_ON(strscpy(ret->str, src, len) < 0)) {23 + kfree(ret);24 + return NULL;25 + }22 26 return ret; 23 27 } 24 28