Message ID | 20250127205404.3116679-1-mjguzik@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | apparmor: use the condition in AA_BUG_FMT even with debug disabled | expand |
For the record, a previous patch that removes the sock variable was previously accepted: https://lists.ubuntu.com/archives/apparmor/2025-January/013449.html (patch) and https://lists.ubuntu.com/archives/apparmor/2025-January/013463.html (ack from John Johansen) On Mon, Jan 27, 2025 at 12:54 PM Mateusz Guzik <mjguzik@gmail.com> wrote: > > This follows the established practice and fixes a build failure for me: > security/apparmor/file.c: In function ‘__file_sock_perm’: > security/apparmor/file.c:544:24: error: unused variable ‘sock’ [-Werror=unused-variable] > 544 | struct socket *sock = (struct socket *) file->private_data; > | ^~~~ > > Signed-off-by: Mateusz Guzik <mjguzik@gmail.com> > --- > > Plausibly the sock var wants to be eliminated altogether, but I just > want this to build. > > security/apparmor/include/lib.h | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/security/apparmor/include/lib.h b/security/apparmor/include/lib.h > index 256f4577c653..d947998262b2 100644 > --- a/security/apparmor/include/lib.h > +++ b/security/apparmor/include/lib.h > @@ -60,7 +60,11 @@ do { \ > #define AA_BUG_FMT(X, fmt, args...) \ > WARN((X), "AppArmor WARN %s: (" #X "): " fmt, __func__, ##args) > #else > -#define AA_BUG_FMT(X, fmt, args...) no_printk(fmt, ##args) > +#define AA_BUG_FMT(X, fmt, args...) \ > + do { \ > + BUILD_BUG_ON_INVALID(X); \ > + no_printk(fmt, ##args); \ > + } while (0) > #endif > > int aa_parse_debug_params(const char *str); > -- > 2.43.0 > >
On Mon, Jan 27, 2025 at 9:59 PM Ryan Lee <ryan.lee@canonical.com> wrote: > > For the record, a previous patch that removes the sock variable was > previously accepted: > https://lists.ubuntu.com/archives/apparmor/2025-January/013449.html > (patch) and https://lists.ubuntu.com/archives/apparmor/2025-January/013463.html > (ack from John Johansen) > That makes sense, but imo the posted patch is still warranted -- all other debug macros (WARN_ON, VM_WARN_ON etc.) are expected to evaluate the condition.
On 1/27/25 12:54, Mateusz Guzik wrote: > This follows the established practice and fixes a build failure for me: > security/apparmor/file.c: In function ‘__file_sock_perm’: > security/apparmor/file.c:544:24: error: unused variable ‘sock’ [-Werror=unused-variable] > 544 | struct socket *sock = (struct socket *) file->private_data; > | ^~~~ > > Signed-off-by: Mateusz Guzik <mjguzik@gmail.com> Acked-by: John Johansen <john.johansen@canonical.com> thanks, I have pulled this into my tree > --- > > Plausibly the sock var wants to be eliminated altogether, but I just > want this to build. > > security/apparmor/include/lib.h | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/security/apparmor/include/lib.h b/security/apparmor/include/lib.h > index 256f4577c653..d947998262b2 100644 > --- a/security/apparmor/include/lib.h > +++ b/security/apparmor/include/lib.h > @@ -60,7 +60,11 @@ do { \ > #define AA_BUG_FMT(X, fmt, args...) \ > WARN((X), "AppArmor WARN %s: (" #X "): " fmt, __func__, ##args) > #else > -#define AA_BUG_FMT(X, fmt, args...) no_printk(fmt, ##args) > +#define AA_BUG_FMT(X, fmt, args...) \ > + do { \ > + BUILD_BUG_ON_INVALID(X); \ > + no_printk(fmt, ##args); \ > + } while (0) > #endif > > int aa_parse_debug_params(const char *str);
diff --git a/security/apparmor/include/lib.h b/security/apparmor/include/lib.h index 256f4577c653..d947998262b2 100644 --- a/security/apparmor/include/lib.h +++ b/security/apparmor/include/lib.h @@ -60,7 +60,11 @@ do { \ #define AA_BUG_FMT(X, fmt, args...) \ WARN((X), "AppArmor WARN %s: (" #X "): " fmt, __func__, ##args) #else -#define AA_BUG_FMT(X, fmt, args...) no_printk(fmt, ##args) +#define AA_BUG_FMT(X, fmt, args...) \ + do { \ + BUILD_BUG_ON_INVALID(X); \ + no_printk(fmt, ##args); \ + } while (0) #endif int aa_parse_debug_params(const char *str);
This follows the established practice and fixes a build failure for me: security/apparmor/file.c: In function ‘__file_sock_perm’: security/apparmor/file.c:544:24: error: unused variable ‘sock’ [-Werror=unused-variable] 544 | struct socket *sock = (struct socket *) file->private_data; | ^~~~ Signed-off-by: Mateusz Guzik <mjguzik@gmail.com> --- Plausibly the sock var wants to be eliminated altogether, but I just want this to build. security/apparmor/include/lib.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)