Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
HardenedBSD
HardenedBSD
Commits
1079b594
Commit
1079b594
authored
Jan 16, 2022
by
HardenedBSD Sync Service
Browse files
Merge branch 'freebsd/current/main' into hardened/current/master
parents
bca7c80f
340cebe9
Changes
3
Hide whitespace changes
Inline
Side-by-side
tools/test/stress2/misc/kevent16.sh
0 → 100755
View file @
1079b594
#!/bin/sh
# Bug 258310 - kevent() does not see signal with zero timeout
# Test scenario copied from the bug report.
# Fixed by: 98168a6e6c12 - main - kqueue: drain kqueue taskqueue if syscall tickled it
cat
>
/tmp/kevent16.c
<<
EOF
#ifdef NDEBUG
#undef NDEBUG
#endif
#define _GNU_SOURCE
#include <sys/types.h>
#include <sys/event.h>
#include <assert.h>
#include <errno.h>
#include <signal.h>
#include <stdlib.h>
#include <poll.h>
#include <unistd.h>
int
main(void)
{
long l;
int rv;
sigset_t set;
rv = sigemptyset(&set);
assert(rv == 0);
rv = sigaddset(&set, SIGUSR1);
assert(rv == 0);
rv = sigprocmask(SIG_BLOCK, &set, NULL);
assert(rv == 0);
int skq = kqueue();
assert(skq >= 0);
struct kevent kev;
EV_SET(&kev, SIGUSR1, EVFILT_SIGNAL, EV_ADD, 0, 0, 0);
rv = kevent(skq, &kev, 1, NULL, 0, NULL);
assert(rv == 0);
int kq = kqueue();
assert(kq >= 0);
EV_SET(&kev, skq, EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, 0);
rv = kevent(kq, &kev, 1, NULL, 0, NULL);
assert(rv == 0);
for (l = 0; l < 1000000; l++) {
rv = kill(getpid(), SIGUSR1);
assert(rv == 0);
/* Turn this into `#if 1` to avoid the race. */
#if 0
rv = kevent(kq, NULL, 0, &kev, 1, NULL);
#else
rv = kevent(kq, NULL, 0, &kev, 1, &(struct timespec) { 0, 0 });
#endif
assert(rv == 1);
rv = kevent(kq, NULL, 0, &kev, 1, &(struct timespec) { 0, 0 });
assert(rv == 0);
rv = kevent(skq, NULL, 0, &kev, 1, &(struct timespec) { 0, 0 });
assert(rv == 1);
rv = kevent(skq, NULL, 0, &kev, 1, &(struct timespec) { 0, 0 });
assert(rv == 0);
siginfo_t siginfo;
rv = sigtimedwait(&set, &siginfo, &(struct timespec) { 0, 0 });
assert(rv == SIGUSR1);
rv = sigtimedwait(&set, &siginfo, &(struct timespec) { 0, 0 });
assert(rv < 0);
assert(errno == EAGAIN);
}
}
EOF
cc
-o
/tmp/kevent16
-Wall
-Wextra
-O2
/tmp/kevent16.c
||
exit
1
/tmp/kevent16
;
s
=
$?
rm
-f
/tmp/kevent16.c kevent16 kevent16.core
exit
$s
tools/test/stress2/misc/unionfs9.sh
0 → 100755
View file @
1079b594
#!/bin/sh
#
# SPDX-License-Identifier: BSD-2-Clause-FreeBSD
#
# Copyright (c) 2022 Peter Holm <pho@FreeBSD.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# Parallel mount and umount test
# umount(1) stuck in "mount drain" seen:
# https://people.freebsd.org/~pho/stress/log/log0205.txt
# https://people.freebsd.org/~pho/stress/log/log0226.txt
[
`
id
-u
`
-ne
0
]
&&
echo
"Must be root!"
&&
exit
1
.
../default.cfg
mounts
=
3
# Number of parallel scripts
CONT
=
/tmp/unionfs9.continue
set
-e
mdconfig
-a
-t
swap
-s
256m
-u
$mdstart
newfs
$newfs_flags
-n
md
$mdstart
>
/dev/null
mount /dev/md
$mdstart
$mntpoint
for
i
in
`
jot
$mounts
$((
mdstart
+
2
))
`
;
do
mdconfig
-a
-t
swap
-s
512m
-u
$((
mdstart
+
i
))
newfs
$newfs_flags
-n
md
$((
mdstart
+
i
))
>
/dev/null
mkdir
-p
${
mntpoint
}
$i
mount /dev/md
$((
mdstart
+
i
))
${
mntpoint
}
$i
done
set
+e
echo
Pre:
mount |
grep
mnt
(
cd
$mntpoint
;
jot 500 | xargs
touch
)
(
cd
../testcases/swap
;
./swap
-t
5m
-i
20
>
/dev/null
)
&
# Start the parallel tests
touch
$CONT
for
i
in
`
jot
$mounts
$((
mdstart
+
2
))
`
;
do
while
[
-f
$CONT
]
;
do
find
${
mntpoint
}
$i
-type
f
-maxdepth
2
-ls
>
\
/dev/null 2>&1
done
&
# The test: Parallel mount and unmounts
start
=
`
date
+%s
`
(
while
[
$((
`
date
+%s
`
-
start
))
-lt
300
]
;
do
mount_unionfs
$mntpoint
${
mntpoint
}
$i
>
\
/dev/null 2>&1
opt
=
$(
[
`
jot
-r
1 0 1
`
-eq
0
]
&&
echo
"-f"
)
while
mount |
grep
-q
${
mntpoint
}
$i
;
do
umount
$opt
${
mntpoint
}
$i
>
\
/dev/null 2>&1
done
done
rm
-f
$CONT
)
&
done
while
[
-f
$CONT
]
;
do
sleep
1
;
done
while
pgrep
-q
swap
;
do
pkill swap
;
done
wait
echo
Post:
mount |
grep
mnt
for
i
in
`
jot
$mounts
$((
mdstart
+
2
))
`
;
do
umount
${
mntpoint
}
$i
>
/dev/null 2>&1
mdconfig
-d
-u
$((
mdstart
+
i
))
rmdir
${
mntpoint
}
$i
done
while
mount |
grep
$mntpoint
|
grep
-q
/dev/md
;
do
umount
$mntpoint
||
sleep
1
[
$((
n
+=
1
))
-gt
300
]
&&
{
echo
FAIL
;
exit
1
;
}
done
mdconfig
-d
-u
$mdstart
exit
0
usr.bin/etdump/etdump.c
View file @
1079b594
...
...
@@ -262,7 +262,7 @@ main(int argc, char **argv)
}
else
{
iso
=
fopen
(
argv
[
i
],
"r"
);
if
(
iso
==
NULL
)
err
(
1
,
"could not open %s"
,
argv
[
1
]);
err
(
1
,
"could not open %s"
,
argv
[
i
]);
}
dump_eltorito
(
iso
,
argv
[
i
],
outfile
,
outputter
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment