History

xattr: Constify ->name member of "struct xattr".

Since everybody sets kstrdup()ed constant string to "struct xattr"->name but nobody modifies "struct xattr"->name , we can omit kstrdup() and its failure checking by constifying ->name member of "struct xattr".

Tetsuo Handa committed 13 years ago

Commit 95489061 parent be0306b9 files · +21 −31Browse files

Unified · Split

9 files
  1. fs/ocfs2/xattr.h +1 −1
  2. include/linux/security.h +4 −4
  3. include/linux/xattr.h +1 −1
  4. include/uapi/linux/reiserfs_xattr.h +1 −1
  5. security/capability.c +1 −1
  6. security/integrity/evm/evm_main.c +1 −1
  7. security/security.c +3 −5
  8. security/selinux/hooks.c +6 −11
  9. security/smack/smack_lsm.c +3 −6
fs/ocfs2/xattr.h+1−1
@@ -32,7 +32,7 @@ enum ocfs2_xattr_type { · 31 unmodified lines
3232
3333 struct ocfs2_security_xattr_info {
3434 int enable;
35− char *name;
35+ const char *name;
3636 void *value;
3737 size_t value_len;
3838 };
include/linux/security.h+4−4
@@ -1492,7 +1492,7 @@ struct security_operations { · 1491 unmodified lines
14921492 int (*inode_alloc_security) (struct inode *inode);
14931493 void (*inode_free_security) (struct inode *inode);
14941494 int (*inode_init_security) (struct inode *inode, struct inode *dir,
1495− const struct qstr *qstr, char **name,
1495+ const struct qstr *qstr, const char **name,
14961496 void **value, size_t *len);
14971497 int (*inode_create) (struct inode *dir,
14981498 struct dentry *dentry, umode_t mode);
@@ -1770,7 +1770,7 @@ int security_inode_init_security(struct inode *inode, struct inode *dir, · 271 unmodified lines
17701770 const struct qstr *qstr,
17711771 initxattrs initxattrs, void *fs_data);
17721772 int security_old_inode_init_security(struct inode *inode, struct inode *dir,
1773− const struct qstr *qstr, char **name,
1773+ const struct qstr *qstr, const char **name,
17741774 void **value, size_t *len);
17751775 int security_inode_create(struct inode *dir, struct dentry *dentry, umode_t mode);
17761776 int security_inode_link(struct dentry *old_dentry, struct inode *dir,
@@ -2094,8 +2094,8 @@ static inline int security_inode_init_security(struct inode *inode, · 317 unmodified lines
20942094 static inline int security_old_inode_init_security(struct inode *inode,
20952095 struct inode *dir,
20962096 const struct qstr *qstr,
2097− char **name, void **value,
2098− size_t *len)
2097+ const char **name,
2098+ void **value, size_t *len)
20992099 {
21002100 return -EOPNOTSUPP;
21012101 }
include/linux/xattr.h+1−1
@@ -31,7 +31,7 @@ struct xattr_handler { · 30 unmodified lines
3131 };
3232
3333 struct xattr {
34− char *name;
34+ const char *name;
3535 void *value;
3636 size_t value_len;
3737 };
include/uapi/linux/reiserfs_xattr.h+1−1
@@ -16,7 +16,7 @@ struct reiserfs_xattr_header { · 15 unmodified lines
1616 };
1717
1818 struct reiserfs_security_handle {
19− char *name;
19+ const char *name;
2020 void *value;
2121 size_t length;
2222 };
security/capability.c+1−1
@@ -129,7 +129,7 @@ static void cap_inode_free_security(struct inode *inode) · 128 unmodified lines
129129 }
130130
131131 static int cap_inode_init_security(struct inode *inode, struct inode *dir,
132− const struct qstr *qstr, char **name,
132+ const struct qstr *qstr, const char **name,
133133 void **value, size_t *len)
134134 {
135135 return -EOPNOTSUPP;
security/integrity/evm/evm_main.c+1−1
@@ -418,7 +418,7 @@ int evm_inode_init_security(struct inode *inode, · 417 unmodified lines
418418
419419 evm_xattr->value = xattr_data;
420420 evm_xattr->value_len = sizeof(*xattr_data);
421− evm_xattr->name = kstrdup(XATTR_EVM_SUFFIX, GFP_NOFS);
421+ evm_xattr->name = XATTR_EVM_SUFFIX;
422422 return 0;
423423 out:
424424 kfree(xattr_data);
security/security.c+3−5
@@ -348,10 +348,10 @@ int security_inode_init_security(struct inode *inode, struct inode *dir, · 347 unmodified lines
348348 if (unlikely(IS_PRIVATE(inode)))
349349 return 0;
350350
351− memset(new_xattrs, 0, sizeof new_xattrs);
352351 if (!initxattrs)
353352 return security_ops->inode_init_security(inode, dir, qstr,
354353 NULL, NULL, NULL);
354+ memset(new_xattrs, 0, sizeof(new_xattrs));
355355 lsm_xattr = new_xattrs;
356356 ret = security_ops->inode_init_security(inode, dir, qstr,
357357 &lsm_xattr->name,
@@ -366,16 +366,14 @@ int security_inode_init_security(struct inode *inode, struct inode *dir, · 8 unmodified lines
366366 goto out;
367367 ret = initxattrs(inode, new_xattrs, fs_data);
368368 out:
369− for (xattr = new_xattrs; xattr->name != NULL; xattr++) {
370− kfree(xattr->name);
369+ for (xattr = new_xattrs; xattr->value != NULL; xattr++)
371370 kfree(xattr->value);
372− }
373371 return (ret == -EOPNOTSUPP) ? 0 : ret;
374372 }
375373 EXPORT_SYMBOL(security_inode_init_security);
376374
377375 int security_old_inode_init_security(struct inode *inode, struct inode *dir,
378− const struct qstr *qstr, char **name,
376+ const struct qstr *qstr, const char **name,
379377 void **value, size_t *len)
380378 {
381379 if (unlikely(IS_PRIVATE(inode)))
security/selinux/hooks.c+6−11
@@ -2587,7 +2587,8 @@ static int selinux_dentry_init_security(struct dentry *dentry, int mode, · 2586 unmodified lines
25872587 }
25882588
25892589 static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
2590− const struct qstr *qstr, char **name,
2590+ const struct qstr *qstr,
2591+ const char **name,
25912592 void **value, size_t *len)
25922593 {
25932594 const struct task_security_struct *tsec = current_security();
@@ -2595,7 +2596,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir, · 1 unmodified line
25952596 struct superblock_security_struct *sbsec;
25962597 u32 sid, newsid, clen;
25972598 int rc;
2598− char *namep = NULL, *context;
2599+ char *context;
25992600
26002601 dsec = dir->i_security;
26012602 sbsec = dir->i_sb->s_security;
@@ -2631,19 +2632,13 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir, · 29 unmodified lines
26312632 if (!ss_initialized || !(sbsec->flags & SE_SBLABELSUPP))
26322633 return -EOPNOTSUPP;
26332634
2634− if (name) {
2635− namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_NOFS);
2636− if (!namep)
2637− return -ENOMEM;
2638− *name = namep;
2639− }
2635+ if (name)
2636+ *name = XATTR_SELINUX_SUFFIX;
26402637
26412638 if (value && len) {
26422639 rc = security_sid_to_context_force(newsid, &context, &clen);
2643− if (rc) {
2644− kfree(namep);
2640+ if (rc)
26452641 return rc;
2646− }
26472642 *value = context;
26482643 *len = clen;
26492644 }
security/smack/smack_lsm.c+3−6
@@ -582,7 +582,7 @@ static void smack_inode_free_security(struct inode *inode) · 581 unmodified lines
582582 * Returns 0 if it all works out, -ENOMEM if there's no memory
583583 */
584584 static int smack_inode_init_security(struct inode *inode, struct inode *dir,
585− const struct qstr *qstr, char **name,
585+ const struct qstr *qstr, const char **name,
586586 void **value, size_t *len)
587587 {
588588 struct inode_smack *issp = inode->i_security;
@@ -591,11 +591,8 @@ static int smack_inode_init_security(struct inode *inode, struct inode *dir, · 2 unmodified lines
591591 char *dsp = smk_of_inode(dir);
592592 int may;
593593
594− if (name) {
595− *name = kstrdup(XATTR_SMACK_SUFFIX, GFP_NOFS);
596− if (*name == NULL)
597− return -ENOMEM;
598− }
594+ if (name)
595+ *name = XATTR_SMACK_SUFFIX;
599596
600597 if (value) {
601598 rcu_read_lock();

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t