linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: SF Markus Elfring <elfring@users.sourceforge.net>
To: linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov,
	Eric Paris <eparis@parisplace.org>,
	James Morris <james.l.morris@oracle.com>,
	Paul Moore <paul@paul-moore.com>,
	"Serge E. Hallyn" <serge@hallyn.com>,
	Stephen Smalley <sds@tycho.nsa.gov>,
	William Roberts <william.c.roberts@intel.com>
Cc: LKML <linux-kernel@vger.kernel.org>, kernel-janitors@vger.kernel.org
Subject: [PATCH 07/46] selinux: Delete unnecessary variable assignments in policydb_index()
Date: Sun, 15 Jan 2017 16:04:48 +0100	[thread overview]
Message-ID: <247c0e27-c442-3408-4f92-492629d61fbf@users.sourceforge.net> (raw)
In-Reply-To: <ca34123f-ced6-d2bc-363b-690858618827@users.sourceforge.net>

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sat, 14 Jan 2017 13:40:25 +0100

The local variable "rc" was reset with an error code up to five times
before a memory allocation failure was detected.

Add a jump target so that this assignment will only be performed after
a concrete software failure.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 security/selinux/ss/policydb.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c
index 21869b622c0c..4d4ba1ad910d 100644
--- a/security/selinux/ss/policydb.c
+++ b/security/selinux/ss/policydb.c
@@ -539,34 +539,30 @@ static int policydb_index(struct policydb *p)
 	symtab_hash_eval(p->symtab);
 #endif
 
-	rc = -ENOMEM;
 	p->class_val_to_struct = kcalloc(p->p_classes.nprim,
 					 sizeof(*p->class_val_to_struct),
 					 GFP_KERNEL);
 	if (!p->class_val_to_struct)
-		goto out;
+		goto failure_indication;
 
-	rc = -ENOMEM;
 	p->role_val_to_struct = kcalloc(p->p_roles.nprim,
 					sizeof(*p->role_val_to_struct),
 					GFP_KERNEL);
 	if (!p->role_val_to_struct)
-		goto out;
+		goto failure_indication;
 
-	rc = -ENOMEM;
 	p->user_val_to_struct = kcalloc(p->p_users.nprim,
 					sizeof(*p->user_val_to_struct),
 					GFP_KERNEL);
 	if (!p->user_val_to_struct)
-		goto out;
+		goto failure_indication;
 
 	/* Yes, I want the sizeof the pointer, not the structure */
-	rc = -ENOMEM;
 	p->type_val_to_struct_array = flex_array_alloc(sizeof(struct type_datum *),
 						       p->p_types.nprim,
 						       GFP_KERNEL | __GFP_ZERO);
 	if (!p->type_val_to_struct_array)
-		goto out;
+		goto failure_indication;
 
 	rc = flex_array_prealloc(p->type_val_to_struct_array, 0,
 				 p->p_types.nprim, GFP_KERNEL | __GFP_ZERO);
@@ -578,12 +574,11 @@ static int policydb_index(struct policydb *p)
 		goto out;
 
 	for (i = 0; i < SYM_NUM; i++) {
-		rc = -ENOMEM;
 		p->sym_val_to_name[i] = flex_array_alloc(sizeof(char *),
 							 p->symtab[i].nprim,
 							 GFP_KERNEL | __GFP_ZERO);
 		if (!p->sym_val_to_name[i])
-			goto out;
+			goto failure_indication;
 
 		rc = flex_array_prealloc(p->sym_val_to_name[i],
 					 0, p->symtab[i].nprim,
@@ -598,6 +593,9 @@ static int policydb_index(struct policydb *p)
 	rc = 0;
 out:
 	return rc;
+failure_indication:
+	rc = -ENOMEM;
+	goto out;
 }
 
 /*
-- 
2.11.0

  parent reply	other threads:[~2017-01-15 15:05 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-15 14:55 [PATCH 00/46] SELinux: Fine-tuning for several function implementations SF Markus Elfring
2017-01-15 14:56 ` [PATCH 01/46] selinux: Use kmalloc_array() in cond_init_bool_indexes() SF Markus Elfring
2017-03-23 20:24   ` Paul Moore
2017-01-15 14:58 ` [PATCH 02/46] selinux: Delete an unnecessary return statement in cond_compute_av() SF Markus Elfring
2017-03-23 20:28   ` Paul Moore
2017-01-15 15:00 ` [PATCH 03/46] selinux: Improve size determinations in four functions SF Markus Elfring
2017-03-23 20:30   ` Paul Moore
2017-01-15 15:01 ` [PATCH 04/46] selinux: Use kmalloc_array() in hashtab_create() SF Markus Elfring
2017-03-23 20:32   ` Paul Moore
2017-01-15 15:02 ` [PATCH 05/46] selinux: Adjust four checks for null pointers SF Markus Elfring
2017-03-23 20:38   ` Paul Moore
2017-01-15 15:03 ` [PATCH 06/46] selinux: Use kcalloc() in policydb_index() SF Markus Elfring
2017-03-23 21:15   ` Paul Moore
2017-01-15 15:04 ` SF Markus Elfring [this message]
2017-01-17 16:27   ` [PATCH 07/46] selinux: Delete unnecessary variable assignments " Casey Schaufler
2017-03-23 21:20   ` Paul Moore
2017-03-27  6:24     ` SF Markus Elfring
2017-03-27 18:20       ` Paul Moore
2017-01-15 15:06 ` [PATCH 08/46] selinux: Delete an unnecessary return statement in policydb_destroy() SF Markus Elfring
2017-03-23 21:22   ` Paul Moore
2017-01-15 15:07 ` [PATCH 09/46] selinux: Delete an error message for a failed memory allocation in policydb_read() SF Markus Elfring
2017-03-23 21:33   ` Paul Moore
2017-03-24 12:13     ` SF Markus Elfring
2017-03-25 15:44       ` Paul Moore
2017-03-27  5:56         ` SF Markus Elfring
2017-03-27 18:23           ` Paul Moore
2017-01-15 15:10 ` [PATCH 10/46] selinux: Move some assignments for the variable "rc" " SF Markus Elfring
2017-03-23 21:44   ` Paul Moore
2017-03-24 10:09     ` SF Markus Elfring
2017-03-25 15:38       ` Paul Moore
2017-01-15 15:11 ` [PATCH 11/46] selinux: Return directly after a failed next_entry() in genfs_read() SF Markus Elfring
2017-03-23 21:46   ` Paul Moore
2017-01-15 15:12 ` [PATCH 12/46] selinux: Move assignments for two pointers " SF Markus Elfring
2017-03-23 21:48   ` Paul Moore
2017-01-15 15:13 ` [PATCH 13/46] selinux: Move four assignments for the variable "rc" " SF Markus Elfring
2017-03-23 21:50   ` Paul Moore
2017-01-15 15:14 ` [PATCH 14/46] selinux: One function call less in genfs_read() after null pointer detection SF Markus Elfring
2017-03-23 21:54   ` Paul Moore
2017-01-15 15:15 ` [PATCH 15/46] selinux: One check and function call less in genfs_read() after error detection SF Markus Elfring
2017-01-17 16:32   ` Casey Schaufler
2017-01-17 16:37     ` SF Markus Elfring
2017-01-17 17:53       ` Casey Schaufler
2017-03-23 22:05         ` Paul Moore
2017-01-15 15:16 ` [PATCH 16/46] selinux: Move two assignments for the variable "rc" in filename_trans_read() SF Markus Elfring
2017-03-23 22:07   ` Paul Moore
2017-01-15 15:17 ` [PATCH 17/46] selinux: Delete an unnecessary variable assignment " SF Markus Elfring
2017-03-23 22:09   ` Paul Moore
2017-01-15 15:18 ` [PATCH 18/46] selinux: One function call less in filename_trans_read() after error detection SF Markus Elfring
2017-03-23 22:10   ` Paul Moore
2017-01-15 15:19 ` [PATCH 19/46] selinux: Return directly after a failed next_entry() in range_read() SF Markus Elfring
2017-03-23 22:12   ` Paul Moore
2017-01-15 15:20 ` [PATCH 20/46] selinux: Move four assignments for the variable "rc" " SF Markus Elfring
2017-03-23 22:13   ` Paul Moore
2017-01-15 15:21 ` [PATCH 21/46] selinux: Two function calls less in range_read() after error detection SF Markus Elfring
2017-01-17 16:35   ` Casey Schaufler
2017-03-23 22:15     ` Paul Moore
2017-01-15 15:22 ` [PATCH 22/46] selinux: Delete an unnecessary variable initialisation in range_read() SF Markus Elfring
2017-03-23 22:18   ` Paul Moore
2017-01-15 15:23 ` [PATCH 23/46] selinux: Move an assignment for a pointer " SF Markus Elfring
2017-03-23 22:18   ` Paul Moore
2017-01-15 15:24 ` [PATCH 24/46] selinux: Return directly after a failed kzalloc() in cat_read() SF Markus Elfring
2017-03-29 13:55   ` Paul Moore
2017-01-15 15:25 ` [PATCH 25/46] selinux: Return directly after a failed kzalloc() in sens_read() SF Markus Elfring
2017-03-29 13:57   ` Paul Moore
2017-01-15 15:26 ` [PATCH 26/46] selinux: Improve another size determination " SF Markus Elfring
2017-03-29 14:52   ` Paul Moore
2017-01-15 15:27 ` [PATCH 27/46] selinux: Move an assignment for the variable "rc" " SF Markus Elfring
2017-03-29 14:53   ` Paul Moore
2017-01-15 15:28 ` [PATCH 28/46] selinux: Return directly after a failed kzalloc() in user_read() SF Markus Elfring
2017-03-29 15:17   ` Paul Moore
2017-01-15 15:29 ` [PATCH 29/46] selinux: Return directly after a failed kzalloc() in type_read() SF Markus Elfring
2017-03-29 15:21   ` Paul Moore
2017-01-15 15:30 ` [PATCH 30/46] selinux: Return directly after a failed kzalloc() in role_read() SF Markus Elfring
2017-03-29 15:23   ` Paul Moore
2017-01-15 15:31 ` [PATCH 31/46] selinux: Move an assignment for the variable "rc" " SF Markus Elfring
2017-01-15 15:32 ` [PATCH 32/46] selinux: Return directly after a failed kzalloc() in class_read() SF Markus Elfring
2017-03-29 15:25   ` Paul Moore
2017-01-15 15:33 ` [PATCH 33/46] selinux: Move an assignment for the variable "rc" " SF Markus Elfring
2017-03-29 15:28   ` Paul Moore
2017-01-15 15:34 ` [PATCH 34/46] selinux: Return directly after a failed kzalloc() in common_read() SF Markus Elfring
2017-03-29 15:30   ` Paul Moore
2017-01-15 15:35 ` [PATCH 35/46] selinux: Return directly after a failed kzalloc() in perm_read() SF Markus Elfring
2017-03-29 15:31   ` Paul Moore
2017-01-15 15:36 ` [PATCH 36/46] selinux: Move an assignment for the variable "rc" in mls_read_range_helper() SF Markus Elfring
2017-03-29 15:32   ` Paul Moore
2017-01-15 15:37 ` [PATCH 37/46] selinux: Move an assignment for the variable "rc" in policydb_load_isids() SF Markus Elfring
2017-03-29 15:32   ` Paul Moore
2017-01-15 15:38 ` [PATCH 38/46] selinux: One function call less in five functions after null pointer detection SF Markus Elfring
2017-03-29 15:37   ` Paul Moore
2017-01-15 15:39 ` [PATCH 39/46] selinux: Move two assignments for the variable "rc" in ocontext_read() SF Markus Elfring
2017-03-29 15:38   ` Paul Moore
2017-01-15 15:40 ` [PATCH 40/46] selinux: Return directly after a failed kzalloc() in roles_init() SF Markus Elfring
2017-03-29 15:40   ` Paul Moore
2017-01-15 15:41 ` [PATCH 41/46] selinux: Move two assignments for the variable "rc" " SF Markus Elfring
2017-03-29 15:40   ` Paul Moore
2017-01-15 15:42 ` [PATCH 42/46] selinux: One function call less in roles_init() after error detection SF Markus Elfring
2017-03-29 15:43   ` Paul Moore
2017-01-15 15:43 ` [PATCH 43/46] selinux: Use kmalloc_array() in sidtab_init() SF Markus Elfring
2017-03-29 15:45   ` Paul Moore
2017-01-15 15:44 ` [PATCH 44/46] selinux: Adjust two checks for null pointers SF Markus Elfring
2017-03-29 15:48   ` Paul Moore
2017-01-15 15:45 ` [PATCH 45/46] selinux: Use common error handling code in sidtab_insert() SF Markus Elfring
2017-01-17 18:02   ` Casey Schaufler
2017-01-15 15:46 ` [PATCH 46/46] selinuxfs: Use seq_puts() in sel_avc_stats_seq_show() SF Markus Elfring
2017-03-29 15:53   ` Paul Moore
2017-01-16 15:26 ` [PATCH 00/46] SELinux: Fine-tuning for several function implementations Eric Paris
2017-01-16 16:40   ` Paul Moore
2017-01-16 18:31   ` SELinux: Checking source code positions for the setting of error codes SF Markus Elfring
2017-03-23 22:24 ` [PATCH 00/46] SELinux: Fine-tuning for several function implementations Paul Moore
2017-03-27  5:48   ` SF Markus Elfring
2017-03-27 18:19     ` Paul Moore
2017-04-04 11:10 ` [PATCH 0/3] SELinux: Fine-tuning for two " SF Markus Elfring
2017-04-04 11:12   ` [PATCH 1/3] selinux: Return directly after a failed memory allocation in policydb_index() SF Markus Elfring
2017-05-16 18:28     ` Paul Moore
2017-04-04 11:14   ` [PATCH 2/3] selinux: Return an error code only as a constant in sidtab_insert() SF Markus Elfring
2017-05-16 18:32     ` Paul Moore
2017-04-04 11:16   ` [PATCH 3/3] selinux: Use an other error code for an input validation failure " SF Markus Elfring
2017-05-16 18:41     ` Paul Moore
2017-05-16 19:57       ` SF Markus Elfring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=247c0e27-c442-3408-4f92-492629d61fbf@users.sourceforge.net \
    --to=elfring@users.sourceforge.net \
    --cc=eparis@parisplace.org \
    --cc=james.l.morris@oracle.com \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=paul@paul-moore.com \
    --cc=sds@tycho.nsa.gov \
    --cc=selinux@tycho.nsa.gov \
    --cc=serge@hallyn.com \
    --cc=william.c.roberts@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).