]> err.no Git - linux-2.6/blobdiff - fs/cifs/cifs_debug.c
regression: cifs endianness bug
[linux-2.6] / fs / cifs / cifs_debug.c
index 0356694b5cd0c8b249b94f4c233053ba76f2de90..73c4c419663c1dc1a3558d2df405fcb58bc07e66 100644 (file)
@@ -213,7 +213,8 @@ cifs_debug_data_read(char *buf, char **beginBuffer, off_t offset,
                                 tcon->treeName, atomic_read(&tcon->useCount));
                buf += length;
                if (tcon->nativeFileSystem) {
-                       length = sprintf("Type: %s ", tcon->nativeFileSystem);
+                       length = sprintf(buf, "Type: %s ",
+                                        tcon->nativeFileSystem);
                        buf += length;
                }
                length = sprintf(buf, "DevInfo: 0x%x Attributes: 0x%x"
@@ -878,11 +879,16 @@ security_flags_write(struct file *file, const char __user *buffer,
        if (count < 3) {
                /* single char or single char followed by null */
                c = flags_string[0];
-               if (c == '0' || c == 'n' || c == 'N')
+               if (c == '0' || c == 'n' || c == 'N') {
                        extended_security = CIFSSEC_DEF; /* default */
-               else if (c == '1' || c == 'y' || c == 'Y')
+                       return count;
+               } else if (c == '1' || c == 'y' || c == 'Y') {
                        extended_security = CIFSSEC_MAX;
-               return count;
+                       return count;
+               } else if (!isdigit(c)) {
+                       cERROR(1, ("invalid flag %c", c));
+                       return -EINVAL;
+               }
        }
        /* else we have a number */