From: Casey Schaufler <[email protected]>
This represents the rework required for changes to inode_getsecurity.
It is relative to smack24rc2v11, which is the version added to -mm,
but subsequently removed because of the change to inode_getsecurity
Signed-off-by: Casey Schaufler <[email protected]>
---
security/smack/smack_lsm.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff -uprN -X linux-2.6.24-rc2-base/Documentation/dontdiff linux-2.6.24-rc2-smack/security/smack/smack_lsm.c linux-2.6.24-rc2-mm1-smack/security/smack/smack_lsm.c
--- linux-2.6.24-rc2-smack/security/smack/smack_lsm.c 2007-11-07 21:35:41.000000000 -0800
+++ linux-2.6.24-rc2-mm1-smack/security/smack/smack_lsm.c 2007-11-12 22:49:16.000000000 -0800
@@ -673,8 +673,8 @@ static int smack_inode_removexattr(struc
* Returns the size of the attribute or an error code
*/
static int smack_inode_getsecurity(const struct inode *inode,
- const char *name, void *buffer,
- size_t size, int err)
+ const char *name, void **buffer,
+ bool alloc)
{
struct socket_smack *ssp;
struct socket *sock;
@@ -687,9 +687,7 @@ static int smack_inode_getsecurity(const
if (strcmp(name, XATTR_SMACK_SUFFIX) == 0) {
isp = smk_of_inode(inode);
ilen = strlen(isp) + 1;
- if (ilen > size)
- return -EINVAL;
- strncpy(buffer, isp, ilen);
+ *buffer = isp;
return ilen;
}
@@ -714,10 +712,8 @@ static int smack_inode_getsecurity(const
return -EOPNOTSUPP;
ilen = strlen(isp) + 1;
- if (ilen > size)
- rc = -EINVAL;
if (rc == 0) {
- strncpy(buffer, isp, ilen);
+ *buffer = isp;
rc = ilen;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]