[Bug 236714] Clang problem with rctl(8)

2019-04-03 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

Mateusz Guzik  changed:

   What|Removed |Added

 Status|New |Closed
 Resolution|--- |FIXED
   Assignee|toolch...@freebsd.org   |m...@freebsd.org

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 236714] Clang problem with rctl(8)

2019-04-03 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

--- Comment #12 from Mateusz Guzik  ---
It is not being ignored. There is non-zero garbage in an area not written to by
sysctl, which makes the zero comparison fail.

diff --git a/usr.bin/rctl/rctl.c b/usr.bin/rctl/rctl.c
index 74073c13207e..8fb9e862aee8 100644
--- a/usr.bin/rctl/rctl.c
+++ b/usr.bin/rctl/rctl.c
@@ -378,12 +378,15 @@ print_rules(char *rules, int hflag, int nflag)
 static void
 enosys(void)
 {
-   int error, racct_enable;
+   int error, racct_enable = ~(0);
size_t racct_enable_len;

+
+   printf("%x\n", racct_enable);
racct_enable_len = sizeof(racct_enable);
error = sysctlbyname("kern.racct.enable",
_enable, _enable_len, NULL, 0);
+   printf("%x\n", racct_enable);

if (error != 0) {
if (errno == ENOENT)

Results in:

ff00
a.out: failed to show rules for '::': Function not implemented

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 236714] Clang problem with rctl(8)

2019-04-03 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

--- Comment #11 from Edward Tomasz Napierala  ---
Patch looks good, thank you!

What about the underlying issue, which is sysctl(3) silently failing when it
receives an improperly sized buffer?  Would it be feasible to make it return an
error, so it's easier to fix next time it happens?

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 236714] Clang problem with rctl(8)

2019-04-02 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

--- Comment #8 from Mateusz Guzik  ---
I thought markj wanted to handle a general case.

I did not check if anything depends on the affected sysctl in userspace, so
that's my bad. However, since the change is only in current and the tool can be
modified I don't think there is much use of adding aforementioned support
there.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 236714] Clang problem with rctl(8)

2019-04-02 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

Konstantin Belousov  changed:

   What|Removed |Added

 CC||k...@freebsd.org

--- Comment #7 from Konstantin Belousov  ---
What is the problem checking for exactly old or new buffer size ?  Look e.g. at
the sysctl_bufspace() in vfs_bio.c.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 236714] Clang problem with rctl(8)

2019-04-01 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

--- Comment #6 from Mark Johnston  ---
(In reply to Mateusz Guzik from comment #5)
Well, it's fine in the (probably more common) case where the kernel changed a
type from int to bool and userspace applications are not immediately updated to
match.  But I agree that it could cause some unpleasant surprises, and your
diff looks fine to me.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 236714] Clang problem with rctl(8)

2019-04-01 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

--- Comment #5 from Mateusz Guzik  ---
(In reply to Mark Johnston from comment #3)

I don't think that's feasible since consumers can pass arbitrary sizes, and
some probably pass more than they intended in a bogus manner where they would
not be prepared to sudden zeroing of the area passed.

Looks like the bug at hand can be easily taken care of with just resizing the
var to bool in the userspace tool. While the previous binary remains broken I
don't think it's a big deal since this is current-only.

that is:
diff --git a/usr.bin/rctl/rctl.c b/usr.bin/rctl/rctl.c
index 74073c13207e..f8b5115a4507 100644
--- a/usr.bin/rctl/rctl.c
+++ b/usr.bin/rctl/rctl.c
@@ -378,8 +378,9 @@ print_rules(char *rules, int hflag, int nflag)
 static void
 enosys(void)
 {
-   int error, racct_enable;
size_t racct_enable_len;
+   int error;
+   bool racct_enable;

racct_enable_len = sizeof(racct_enable);
error = sysctlbyname("kern.racct.enable",

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 236714] Clang problem with rctl(8)

2019-03-22 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

--- Comment #3 from Mark Johnston  ---
(In reply to Edward Tomasz Napierala from comment #2)
It would probably be better to detect the case where the old buffer is larger
than 1 byte, and zero the full buffer before writing out the value.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 236714] Clang problem with rctl(8)

2019-03-22 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

--- Comment #2 from Edward Tomasz Napierala  ---
Thanks!  I wonder if we could perhaps return an error from sysctl(3) in this
case?

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 236714] Clang problem with rctl(8)

2019-03-22 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

Mark Johnston  changed:

   What|Removed |Added

 CC||ma...@freebsd.org

--- Comment #1 from Mark Johnston  ---
It's a regression from r341182.  The kernel is exporting racct_enable as a
bool.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 236714] Clang problem with rctl(8)

2019-03-22 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236714

Mark Linimon  changed:

   What|Removed |Added

   Assignee|b...@freebsd.org|toolch...@freebsd.org

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"