Commit 5394cd21 authored by Linus Torvalds's avatar Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
  [CIFS] Fix oops when Windows server sent bad domain name null terminator
  [CIFS]  cifs sprintf fix
  [CIFS] Remove 2 unneeded kzalloc casts
  [CIFS] Update CIFS version number
parents 6f3776c9 8e6f195a
Version 1.47
------------
Fix oops in list_del during mount caused by unaligned string.
Version 1.46 Version 1.46
------------ ------------
Support deep tree mounts. Better support OS/2, Win9x (DOS) time stamps. Support deep tree mounts. Better support OS/2, Win9x (DOS) time stamps.
......
...@@ -143,8 +143,8 @@ cifs_debug_data_read(char *buf, char **beginBuffer, off_t offset, ...@@ -143,8 +143,8 @@ cifs_debug_data_read(char *buf, char **beginBuffer, off_t offset,
ses = list_entry(tmp, struct cifsSesInfo, cifsSessionList); ses = list_entry(tmp, struct cifsSesInfo, cifsSessionList);
if((ses->serverDomain == NULL) || (ses->serverOS == NULL) || if((ses->serverDomain == NULL) || (ses->serverOS == NULL) ||
(ses->serverNOS == NULL)) { (ses->serverNOS == NULL)) {
buf += sprintf("\nentry for %s not fully displayed\n\t", buf += sprintf(buf, "\nentry for %s not fully "
ses->serverName); "displayed\n\t", ses->serverName);
} else { } else {
length = length =
......
...@@ -100,5 +100,5 @@ extern ssize_t cifs_getxattr(struct dentry *, const char *, void *, size_t); ...@@ -100,5 +100,5 @@ extern ssize_t cifs_getxattr(struct dentry *, const char *, void *, size_t);
extern ssize_t cifs_listxattr(struct dentry *, char *, size_t); extern ssize_t cifs_listxattr(struct dentry *, char *, size_t);
extern int cifs_ioctl (struct inode * inode, struct file * filep, extern int cifs_ioctl (struct inode * inode, struct file * filep,
unsigned int command, unsigned long arg); unsigned int command, unsigned long arg);
#define CIFS_VERSION "1.46" #define CIFS_VERSION "1.47"
#endif /* _CIFSFS_H */ #endif /* _CIFSFS_H */
...@@ -71,9 +71,7 @@ sesInfoAlloc(void) ...@@ -71,9 +71,7 @@ sesInfoAlloc(void)
{ {
struct cifsSesInfo *ret_buf; struct cifsSesInfo *ret_buf;
ret_buf = ret_buf = kzalloc(sizeof (struct cifsSesInfo), GFP_KERNEL);
(struct cifsSesInfo *) kzalloc(sizeof (struct cifsSesInfo),
GFP_KERNEL);
if (ret_buf) { if (ret_buf) {
write_lock(&GlobalSMBSeslock); write_lock(&GlobalSMBSeslock);
atomic_inc(&sesInfoAllocCount); atomic_inc(&sesInfoAllocCount);
...@@ -109,9 +107,7 @@ struct cifsTconInfo * ...@@ -109,9 +107,7 @@ struct cifsTconInfo *
tconInfoAlloc(void) tconInfoAlloc(void)
{ {
struct cifsTconInfo *ret_buf; struct cifsTconInfo *ret_buf;
ret_buf = ret_buf = kzalloc(sizeof (struct cifsTconInfo), GFP_KERNEL);
(struct cifsTconInfo *) kzalloc(sizeof (struct cifsTconInfo),
GFP_KERNEL);
if (ret_buf) { if (ret_buf) {
write_lock(&GlobalSMBSeslock); write_lock(&GlobalSMBSeslock);
atomic_inc(&tconInfoAllocCount); atomic_inc(&tconInfoAllocCount);
......
...@@ -182,11 +182,14 @@ static int decode_unicode_ssetup(char ** pbcc_area, int bleft, struct cifsSesInf ...@@ -182,11 +182,14 @@ static int decode_unicode_ssetup(char ** pbcc_area, int bleft, struct cifsSesInf
cFYI(1,("bleft %d",bleft)); cFYI(1,("bleft %d",bleft));
/* word align, if bytes remaining is not even */ /* SMB header is unaligned, so cifs servers word align start of
if(bleft % 2) { Unicode strings */
bleft--;
data++; data++;
} bleft--; /* Windows servers do not always double null terminate
their final Unicode string - in which case we
now will not attempt to decode the byte of junk
which follows it */
words_left = bleft / 2; words_left = bleft / 2;
/* save off server operating system */ /* save off server operating system */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment