title: Why when I use copy_from_user, some vague character added to original buffer?
body: <p>I've created WRITE_IOCTL in kernel module and I call it in user mode:</p>
  
  <pre><code>ioctl(fd, WRITE_IOCTL, "Hello, Kernel!");
  </code></pre>
  
  <p>In kernel mode I have:</p>
  
  <pre><code>static int device_ioctl(struct file *filp,
      unsigned int cmd, unsigned long args) {
    char buff[14];
  
    switch (cmd) {
    case WRITE_IOCTL:
      copy_from_user( buff,(char *)args, 14);
      printk("This message received from User Space: %s\n", buff);
      break;
    }
    return 0;
  }
  </code></pre>
  
  <p>When I run this ioctl, I have some thing like theses in /var/log/kern.log :</p>
  
  <pre><code>This message received from User Space: Hello, Kernel!vE�
  This message received from User Space: Hello, Kernel!M�
  This message received from User Space: Hello, Kernel!M�
  </code></pre>
  
  <p>How can I solve this problem??</p>