diff --git a/examples/procfs2.c b/examples/procfs2.c index b5539c5..0a711d3 100644 --- a/examples/procfs2.c +++ b/examples/procfs2.c @@ -48,13 +48,13 @@ static ssize_t procfile_write(struct file *file, const char __user *buff, size_t len, loff_t *off) { procfs_buffer_size = len; - if (procfs_buffer_size > PROCFS_MAX_SIZE) - procfs_buffer_size = PROCFS_MAX_SIZE; + if (procfs_buffer_size >= PROCFS_MAX_SIZE) + procfs_buffer_size = PROCFS_MAX_SIZE - 1; if (copy_from_user(procfs_buffer, buff, procfs_buffer_size)) return -EFAULT; - procfs_buffer[procfs_buffer_size & (PROCFS_MAX_SIZE - 1)] = '\0'; + procfs_buffer[procfs_buffer_size] = '\0'; *off += procfs_buffer_size; pr_info("procfile write %s\n", procfs_buffer);