Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 158848 Details for
Bug 239339
update CIFS client to 1.48aRH
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
patch -- tweaks made to base tarball for respun patch
cifs-1.48aRH-tweaks2.patch (text/plain), 10.46 KB, created by
Jeff Layton
on 2007-07-10 10:57:59 UTC
(
hide
)
Description:
patch -- tweaks made to base tarball for respun patch
Filename:
MIME Type:
Creator:
Jeff Layton
Created:
2007-07-10 10:57:59 UTC
Size:
10.46 KB
patch
obsolete
>diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c >index 6017c46..f98167d 100644 >--- a/fs/cifs/cifs_debug.c >+++ b/fs/cifs/cifs_debug.c >@@ -895,90 +895,14 @@ security_flags_write(struct file *file, const char __user *buffer, > } > /* flags look ok - update the global security flags for cifs module */ > extended_security = flags; >+ if (extended_security & CIFSSEC_MUST_SIGN) { >+ /* requiring signing implies signing is allowed */ >+ extended_security |= CIFSSEC_MAY_SIGN; >+ cFYI(1, ("packet signing now required")); >+ } else if ((extended_security & CIFSSEC_MAY_SIGN) == 0) { >+ cFYI(1, ("packet signing disabled")); >+ } >+ /* BB should we turn on MAY flags for other MUST options? */ > return count; > } >- >-/* static int >-ntlmv2_enabled_read(char *page, char **start, off_t off, >- int count, int *eof, void *data) >-{ >- int len; >- >- len = sprintf(page, "%d\n", ntlmv2_support); >- >- len -= off; >- *start = page + off; >- >- if (len > count) >- len = count; >- else >- *eof = 1; >- >- if (len < 0) >- len = 0; >- >- return len; >-} >-static int >-ntlmv2_enabled_write(struct file *file, const char __user *buffer, >- unsigned long count, void *data) >-{ >- char c; >- int rc; >- >- rc = get_user(c, buffer); >- if (rc) >- return rc; >- if (c == '0' || c == 'n' || c == 'N') >- ntlmv2_support = 0; >- else if (c == '1' || c == 'y' || c == 'Y') >- ntlmv2_support = 1; >- else if (c == '2') >- ntlmv2_support = 2; >- >- return count; >-} >- >-static int >-packet_signing_enabled_read(char *page, char **start, off_t off, >- int count, int *eof, void *data) >-{ >- int len; >- >- len = sprintf(page, "%d\n", sign_CIFS_PDUs); >- >- len -= off; >- *start = page + off; >- >- if (len > count) >- len = count; >- else >- *eof = 1; >- >- if (len < 0) >- len = 0; >- >- return len; >-} >-static int >-packet_signing_enabled_write(struct file *file, const char __user *buffer, >- unsigned long count, void *data) >-{ >- char c; >- int rc; >- >- rc = get_user(c, buffer); >- if (rc) >- return rc; >- if (c == '0' || c == 'n' || c == 'N') >- sign_CIFS_PDUs = 0; >- else if (c == '1' || c == 'y' || c == 'Y') >- sign_CIFS_PDUs = 1; >- else if (c == '2') >- sign_CIFS_PDUs = 2; >- >- return count; >-} */ >- >- > #endif >diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c >index 6da3439..56aff02 100644 >--- a/fs/cifs/cifsfs.c >+++ b/fs/cifs/cifsfs.c >@@ -182,17 +182,6 @@ cifs_put_super(struct super_block *sb) > return; > } > >-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16) >-void * kzalloc(size_t size, unsigned flgs) >-{ >- void * buf; >- buf = kmalloc(size, flgs); >- if(buf != NULL) >- memset(buf, 0, size); >- return buf; >-} >-#endif >- > #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17) > static int > cifs_statfs(struct dentry *dentry, struct kstatfs *buf) >diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h >index 233aa48..7933187 100644 >--- a/fs/cifs/cifsfs.h >+++ b/fs/cifs/cifsfs.h >@@ -148,5 +148,5 @@ extern ssize_t cifs_getxattr(struct dentry *, const char *, void *, size_t); > extern ssize_t cifs_listxattr(struct dentry *, char *, size_t); > extern int cifs_ioctl (struct inode * inode, struct file * filep, > unsigned int command, unsigned long arg); >-#define CIFS_VERSION "1.47" >+#define CIFS_VERSION "1.48a.RH" > #endif /* _CIFSFS_H */ >diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h >index ae79d24..a71c03f 100644 >--- a/fs/cifs/cifsproto.h >+++ b/fs/cifs/cifsproto.h >@@ -365,7 +365,4 @@ extern int CIFSSMBSetPosixACL(const int xid, struct cifsTconInfo *tcon, > const struct nls_table *nls_codepage, int remap_special_chars); > extern int CIFSGetExtAttr(const int xid, struct cifsTconInfo *tcon, > const int netfid, __u64 * pExtAttrBits, __u64 *pMask); >-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16) >-extern void * kzalloc(size_t size, unsigned flgs); >-#endif > #endif /* _CIFSPROTO_H */ >diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c >index 80fc491..c2e35ed 100644 >--- a/fs/cifs/cifssmb.c >+++ b/fs/cifs/cifssmb.c >@@ -441,11 +441,11 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses) > > /* if any of auth flags (ie not sign or seal) are overriden use them */ > if(ses->overrideSecFlg & (~(CIFSSEC_MUST_SIGN | CIFSSEC_MUST_SEAL))) >- secFlags = ses->overrideSecFlg; >+ secFlags = ses->overrideSecFlg; /* BB FIXME fix sign flags? */ > else /* if override flags set only sign/seal OR them with global auth */ > secFlags = extended_security | ses->overrideSecFlg; > >- cFYI(1,("secFlags 0x%x",secFlags)); >+ cFYI(1, ("secFlags 0x%x", secFlags)); > > pSMB->hdr.Mid = GetNextMid(server); > pSMB->hdr.Flags2 |= SMBFLG2_UNICODE; >@@ -648,22 +648,33 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses) > #ifdef CONFIG_CIFS_WEAK_PW_HASH > signing_check: > #endif >- if(sign_CIFS_PDUs == FALSE) { >+ if ((secFlags & CIFSSEC_MAY_SIGN) == 0) { >+ /* MUST_SIGN already includes the MAY_SIGN FLAG >+ so if this is zero it means that signing is disabled */ >+ cFYI(1, ("Signing disabled")); > if(server->secMode & SECMODE_SIGN_REQUIRED) >- cERROR(1,("Server requires " >- "/proc/fs/cifs/PacketSigningEnabled to be on")); >+ cERROR(1, ("Server requires " >+ "/proc/fs/cifs/PacketSigningEnabled " >+ "to be on")); > server->secMode &= > ~(SECMODE_SIGN_ENABLED | SECMODE_SIGN_REQUIRED); >- } else if(sign_CIFS_PDUs == 1) { >+ } else if ((secFlags & CIFSSEC_MUST_SIGN) == CIFSSEC_MUST_SIGN) { >+ /* signing required */ >+ cFYI(1, ("Must sign - segFlags 0x%x", secFlags)); >+ if ((server->secMode & >+ (SECMODE_SIGN_ENABLED | SECMODE_SIGN_REQUIRED)) == 0) { >+ cERROR(1, >+ ("signing required but server lacks support")); >+ rc = -EOPNOTSUPP; >+ } else >+ server->secMode |= SECMODE_SIGN_REQUIRED; >+ } else { >+ /* signing optional ie CIFSSEC_MAY_SIGN */ > if((server->secMode & SECMODE_SIGN_REQUIRED) == 0) > server->secMode &= > ~(SECMODE_SIGN_ENABLED | SECMODE_SIGN_REQUIRED); >- } else if(sign_CIFS_PDUs == 2) { >- if((server->secMode & >- (SECMODE_SIGN_ENABLED | SECMODE_SIGN_REQUIRED)) == 0) { >- cERROR(1,("signing required but server lacks support")); >- } > } >+ > neg_err_exit: > cifs_buf_release(pSMB); > >diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c >index 2bbc2e1..427f81a 100644 >--- a/fs/cifs/connect.c >+++ b/fs/cifs/connect.c >@@ -369,7 +369,6 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server) > sprintf(current->comm,"cifsd"); > #else > daemonize("cifsd"); >- allow_signal(SIGKILL); > #endif > current->flags |= PF_MEMALLOC; > server->tsk = current; /* save process info to wake at shutdown */ >@@ -1721,12 +1720,13 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, > return -EINVAL; > } > >- if (volume_info.username) { >+ if (volume_info.nullauth) { >+ cFYI(1,("null user")); >+ volume_info.username = NULL; >+ } else if (volume_info.username) { > /* BB fixme parse for domain name here */ > cFYI(1, ("Username: %s ", volume_info.username)); > >- } else if (volume_info.nullauth) { >- cFYI(1,("null user")); > } else { > cifserror("No username specified"); > /* In userspace mount helper we can get user name from alternate >@@ -2053,7 +2053,7 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, > srvTcp->tcpStatus = CifsExiting; > spin_unlock(&GlobalMid_Lock); > if(srvTcp->tsk) { >- send_sig(SIGKILL,srvTcp->tsk,1); >+ force_sig(SIGKILL,srvTcp->tsk); > wait_for_completion(&cifsd_complete); > } > } >@@ -2069,7 +2069,7 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, > /* if the socketUseCount is now zero */ > if((temp_rc == -ESHUTDOWN) && > (pSesInfo->server->tsk)) { >- send_sig(SIGKILL,pSesInfo->server->tsk,1); >+ force_sig(SIGKILL,pSesInfo->server->tsk); > wait_for_completion(&cifsd_complete); > } > } else >@@ -3390,7 +3390,7 @@ cifs_umount(struct super_block *sb, struct cifs_sb_info *cifs_sb) > } else if (rc == -ESHUTDOWN) { > cFYI(1,("Waking up socket by sending it signal")); > if(cifsd_task) { >- send_sig(SIGKILL,cifsd_task,1); >+ force_sig(SIGKILL,cifsd_task); > wait_for_completion(&cifsd_complete); > } > rc = 0; >diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c >index 7be188c..0037dea 100644 >--- a/fs/cifs/dir.c >+++ b/fs/cifs/dir.c >@@ -226,7 +226,8 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode) > /* If Open reported that we actually created a file > then we now have to set the mode if possible */ > if ((cifs_sb->tcon->ses->capabilities & CAP_UNIX) && >- (oplock & CIFS_CREATE_ACTION)) >+ (oplock & CIFS_CREATE_ACTION)) { >+ mode &= ~current->fs->umask; > if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID) { > CIFSSMBUnixSetPerms(xid, pTcon, full_path, mode, > (__u64)current->fsuid, >@@ -244,7 +245,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode) > cifs_sb->mnt_cifs_flags & > CIFS_MOUNT_MAP_SPECIAL_CHR); > } >- else { >+ } else { > /* BB implement mode setting via Windows security descriptors */ > /* eg CIFSSMBWinSetPerms(xid,pTcon,full_path,mode,-1,-1,local_nls);*/ > /* could set r/o dos attribute if mode & 0222 == 0 */ >@@ -363,6 +364,7 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, int mode, int devic > if(full_path == NULL) > rc = -ENOMEM; > else if (pTcon->ses->capabilities & CAP_UNIX) { >+ mode &= ~current->fs->umask; > if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID) { > rc = CIFSSMBUnixSetPerms(xid, pTcon, full_path, > mode,(__u64)current->fsuid,(__u64)current->fsgid, >diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c >index 6fe80c6..f889f9f 100644 >--- a/fs/cifs/inode.c >+++ b/fs/cifs/inode.c >@@ -782,7 +782,8 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode) > d_instantiate(direntry, newinode); > if (direntry->d_inode) > direntry->d_inode->i_nlink = 2; >- if (cifs_sb->tcon->ses->capabilities & CAP_UNIX) >+ if (cifs_sb->tcon->ses->capabilities & CAP_UNIX) { >+ mode &= ~current->fs->umask; > if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID) { > CIFSSMBUnixSetPerms(xid, pTcon, full_path, > mode, >@@ -800,7 +801,7 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode) > cifs_sb->mnt_cifs_flags & > CIFS_MOUNT_MAP_SPECIAL_CHR); > } >- else { >+ } else { > /* BB to be implemented via Windows secrty descriptors > eg CIFSSMBWinSetPerms(xid, pTcon, full_path, mode, > -1, -1, local_nls); */ >@@ -1178,7 +1179,11 @@ static int cifs_vmtruncate(struct inode * inode, loff_t offset) > goto out_truncate; > > do_expand: >+#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 9, 0) > limit = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; >+#else >+ limit = current->rlim[RLIMIT_FSIZE].rlim_cur; >+#endif > if (limit != RLIM_INFINITY && offset > limit) { > spin_unlock(&inode->i_lock); > goto out_sig;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 239339
:
157310
|
157311
|
157313
|
158846
| 158848 |
158849