https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90673
Bug ID: 90673 Summary: A problem with 'copy destination size is too small' warning in copy_from_user Product: gcc Version: 8.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: yaro330 at gmail dot com Target Milestone: --- Example function: static ssize_t ipa3_write_ep_holb(struct file *file, const char __user *buf, size_t count, loff_t *ppos) { unsigned long missing; char dbg_buff[512]; missing = copy_from_user(dbg_buff, ubuf, count); if (missing) return -EFAULT; } call to copy_from_user is triggering an error: error: call to ‘__bad_copy_to’ declared with attribute error: copy destination size is too small and no matter how high I set size for it the error persists. Replacing 'count' with 'sizeof(buf)' fixes the error but it doesn't seem to make much sence. Exact gcc version: gcc version 8.3.1 20190329 (GCC) Link to the file and entore function that gcc errors on: https://github.com/YaroST12/VIOLET_Kernel/blob/b300d2b072c072738297ea981ace652d54a8fea1/drivers/platform/msm/ipa/ipa_v3/ipa_debugfs.c#L144 (pushed away from working branch)