lsm: cleanup the size counters in security_getselfattr()
authorPaul Moore <paul@paul-moore.com>
Tue, 24 Oct 2023 16:38:40 +0000 (12:38 -0400)
committerPaul Moore <paul@paul-moore.com>
Mon, 13 Nov 2023 03:54:42 +0000 (22:54 -0500)
Zero out all of the size counters in the -E2BIG case (buffer too
small) to help make the current code a bit more robust in the face of
future code changes.

Acked-by: Casey Schaufler <casey@schaufler-ca.com>
Reviewed-by: Mickaël Salaün <mic@digikod.net>
Signed-off-by: Paul Moore <paul@paul-moore.com>
security/security.c

index 7281aa90ca202bd78a2c39f5c91aec1f1db55570..74ff9a48bd66d636c8789b8352aded4c9a164971 100644 (file)
@@ -3950,8 +3950,9 @@ int security_getselfattr(unsigned int attr, struct lsm_ctx __user *uctx,
                        continue;
                }
                if (rc == -E2BIG) {
-                       toobig = true;
+                       rc = 0;
                        left = 0;
+                       toobig = true;
                } else if (rc < 0)
                        return rc;
                else