Commit Graph

8187 Commits

Author SHA1 Message Date
matt
91d658881f ofctl can write its OFW tree to a proplib. (reading from a proplib doesn't
quite work yet).
2007-06-03 03:01:41 +00:00
pavel
9188cd99a0 Separate postinstall checks in two groups: enabled and disabled by
default. Only the former checks/fixes are done if no items are given
on the command line. The latter must be requested explicitely.

Intended for "fixes" that are dangerous in some way, because they might
remove files that are still in use, for example.

Make the "sendmail" item disabled by default, it removes sendmail
configuration. Partly addresses PR install/36180.

Proposed on tech-userlevel, review and spelling fixes from lukem@.
2007-06-02 21:25:08 +00:00
dyoung
0bb998a3f7 Bring the example concerning a bootable ISO9660 for i386 up-to-date,
demonstrating the -e option.
2007-06-01 20:56:23 +00:00
tls
36a21907e2 Since Christos cleaned up the use of libc internals here, we can switch
these from USE_SSP to USE_FORT as they should be.
2007-05-28 18:12:06 +00:00
christos
599840187d get rid of libc cruft. requested by tls 2007-05-28 14:49:15 +00:00
tls
4147a3c54a Add new Makefile knob, USE_FORT, which extends USE_SSP by turning on the
FORTIFY_SOURCE feature of libssp, thus checking the size of arguments to
various string and memory copy and set functions (as well as a few system
calls and other miscellany) where known at function entry.  RedHat has
evidently built all "core system packages" with this option for some time.

This option should be used at the top of Makefiles (or Makefile.inc where
this is used for subdirectories) but after any setting of LIB.

This is only useful for userland code, and cannot be used in libc or in
any code which includes the libc internals, because it overrides certain
libc functions with macros.  Some effort has been made to make USE_FORT=yes
work correctly for a full-system build by having the bsd.sys.mk logic
disable the feature where it should not be used (libc, libssp iteself,
the kernel) but no attempt has been made to build the entire system with
USE_FORT and doing so will doubtless expose numerous bugs and misfeatures.

Adjust the system build so that all programs and libraries that are setuid,
directly handle network data (including serial comm data), perform
authentication, or appear likely to have (or have a history of having)
data-driven bugs (e.g. file(1)) are built with USE_FORT=yes by default,
with the exception of libc, which cannot use USE_FORT and thus uses
only USE_SSP by default.  Tested on i386 with no ill results; USE_FORT=no
per-directory or in a system build will disable if desired.
2007-05-28 12:06:17 +00:00
tls
7d2d02742e Revert previous: the readline support here does unspeakable things with
the history buffer that require knowledge of the readline internals to
make safe (it "knows" that GNU readline mallocs certain returned data,
and thus, with libedit, happily calls free on static variables).
2007-05-28 03:28:58 +00:00
christos
1b3a5dad50 turn on command line editing. 2007-05-27 19:46:31 +00:00
tls
e87faddb31 Gross workaround for PR 36390: don't overwrite the stack with zeroes when
using struct sockaddr_dl in an ifreq.
2007-05-27 18:11:38 +00:00
tls
be45f4d02a For FORTIFY_SOURCE: do not pretend to convert code from b* to mem* by
using a #define to turn one into the other, this is pointless and causes
more portability issues than it solves (admittedly, in the year 1702 when
this code was written the opposite may have been the case).
2007-05-27 16:31:41 +00:00
jmmv
fadca732d6 Guess the terminal size on each change instead of during program startup.
This allows the mouse to be used properly in consoles with different sizes:
before this change it was restricted to the size reported by the console
used to start the daemon.

Problem reported by Blair Sadewitz.
2007-05-27 15:05:00 +00:00
christos
e3277e1c36 don't look at the wrong structure to bring the interface down. Also keep
track of state, and bring the interface back up. This should be pulled to
4.0.
2007-05-27 03:15:34 +00:00
christos
1681ee0f39 unregister the read socket when we deinit, otherwise the stale socket stays
in the select mask, select fails with EBADFD and wpa_supplicant exits. This
should be pulled to 4.0.
2007-05-27 03:14:32 +00:00
macallan
b1563bcc6b build ofctl on sparc 2007-05-25 18:27:25 +00:00
macallan
74ab4a8402 make this work with OBP2 2007-05-25 18:27:05 +00:00
pooka
464b354e31 devnullify ssh process's stderr to avoid tty spam 2007-05-21 08:55:04 +00:00
pooka
d32c8fa56b In case we are really tight on vnodes, the directory vnode might
be reclaimed from under while we are warming the getattr cache.
Shuffle some code to prevent the effects.  Theoretically the race
is still possible, but I don't think it will happen in practice.
In any case, the code could benefit from some more dusting.
2007-05-20 20:27:04 +00:00
pooka
4bc09685b9 Observe that when doing ls -l, the attributes of the first file
getattr are usually still outstanding when we already would like
the result.  Instead of issueing another stat which will be serviced
only after all the other entries in the directory, record all the
outgoing readdir getattr buffers and if we encounter an outstanding
request when we need to fetch attrs, do a puffs_framev_framebuf_ccpromote()
wait for it instead of firing off the second query.  This shaves
almost 10% off the time for ls -lR.

Also, get rid of the SUPERREADDIR conditional, since it has penetrated
the code quite a bit and the #ifdef SUPERREADDIRs were starting to
look like tagliatelle alla bolognese (n.b. I love how it looks,
but I wouldn't like it either if my tagliatelle alla bolognese
looked like psshfs code).  Maybe it should be re-introduced in the
form of a switch?
2007-05-20 20:06:23 +00:00
pooka
a769baf075 Implement SUPERREADDIR (like nfs readdirplus) getattr cache warming
a bit differently: when reading the directory, store all getattr
caching queries and fire off only when the directory read is
complete.  That way the common sequence is not [readdir, lots of
async getattr requests, readdir EOF] but rather [readdir, readdir
EOF, lots of async getattr].  This speeds up ls -lR by about 25%
(on my LAN).
2007-05-20 17:47:12 +00:00
pooka
7c537b89eb Change the signature of puffs_respcmp to return -1,0,1 for smaller,
equal, larger, respectively instead of 0/1 for non/equal.  This
will allow sorting the buffers for faster matching in libpuffs.
While here, change the name from respcmp to framecmp, as that better
reflects the purpose.

NOTE!  there is no obvious way to make compilation fail for file
systems which may already be using this feature (although I don't
think there are any outside our tree, as the feature is two weeks
old).  Nevertheless, non-updated file systems will fail very quickly.
2007-05-20 16:24:37 +00:00
seb
d4373f6dcf Update pathnames to the services and netgroups databases after their move
to /var/db.

Pooka@ made me do it.
2007-05-20 14:02:10 +00:00
wiz
0946d2d22d Improve wording for -T. 2007-05-19 14:41:13 +00:00
wiz
b95973aaa7 Sort sections. Use Po/Pc to avoid weird Xr arguments. 2007-05-19 14:18:33 +00:00
pooka
b283afddec support reclaim. set noref setback when removing a node to prompt
immediate reclaim.
2007-05-19 10:38:23 +00:00
pooka
423fa255c6 remove obvious incorrect assert() from doreclaim() and remove the
whole PSN_NUKED bit - it's not very useful because of the noref setback.
2007-05-18 18:00:07 +00:00
pooka
f98f18ebad * use NOREF setback to prompt immediate (well, once the kernel
reference count goes to 0) reclaim of deleted nodes as opposed to
  waiting for the system to start reclaiming the freelist
* combine some nodeflags from different variable to one status variable
2007-05-18 16:13:47 +00:00
pooka
c8b0a89198 reflect changes in fs mount: use puffs_mount() instead of
puffs_domount() & puffs_start()
2007-05-17 14:13:04 +00:00
christos
b0d544666a whitespace fixes. 2007-05-17 00:36:31 +00:00
christos
7ac2181da6 Deal with delta being negative on machines which signed shifts don't shift 1's. 2007-05-17 00:36:12 +00:00
agc
e54f9cf6a0 Add an example to the manual page. 2007-05-16 21:16:31 +00:00
christos
0eeca5df9e coverity CID 1220: Don't use size_t for return of read. 2007-05-16 20:45:45 +00:00
christos
724513abed deal with namespace pollution caused by tcpd. 2007-05-16 14:42:07 +00:00
pooka
c1f0cc6870 Add error parameter to puffs_framev_cb to signal if there is a
result of if the function should just do resource cleanup.
2007-05-16 10:04:08 +00:00
pooka
0b0e609b9b Enhance the GETRESPONSE, JUSTSEND and SENDCB macros to process the
return value from the network layer.
2007-05-16 09:57:21 +00:00
taca
8ea4278bd9 printtqtable.c was added to libipf. 2007-05-16 04:26:07 +00:00
christos
b13d830ce7 Change the way we parse so that the two lines"
foo	11/tcp
	bar	11/tcp
are equivalent to:
	foo	11/tcp	bar
This way we can use the IANA services file properly *and* be able to augment
it with our entries without needing to intersperse our fixes.
2007-05-15 19:57:40 +00:00
elad
6700cfccd6 Some Veriexec stuff that's been rotting in my tree for months.
Bug fixes:
  - Fix crash reported by Scott Ellis on current-users@.

  - Fix race conditions in enforcing the Veriexec rename and remove
    policies. These are NOT security issues.

  - Fix memory leak in rename handling when overwriting a monitored
    file.

  - Fix table deletion logic.

  - Don't prevent query requests if not in learning mode.


KPI updates:
  - fileassoc_table_run() now takes a cookie to pass to the callback.

  - veriexec_table_add() was removed, it is now done internally. As a
    result, there's no longer a need for VERIEXEC_TABLESIZE.

  - veriexec_report() was removed, it is now internal.

  - Perform sanity checks on the entry type, and enforce default type
    in veriexec_file_add() rather than in veriexecctl.

  - Add veriexec_flush(), used to delete all Veriexec tables, and
    veriexec_dump(), used to fill an array with all Veriexec entries.


New features:
  - Add a '-k' flag to veriexecctl, to keep the filenames in the kernel
    database. This allows Veriexec to produce slightly more accurate
    logs under certain circumstances. In the future, this can be either
    replaced by vnode->pathname translation, or combined with it.

  - Add a VERIEXEC_DUMP ioctl, to dump the entire Veriexec database.
    This can be used to recover a database if the file was lost.
    Example usage:

        # veriexecctl dump > /etc/signatures

    Note that only entries with the filename kept (that is, were loaded
    with the '-k' flag) will be dumped.

    Idea from Brett Lymn.

  - Add a VERIEXEC_FLUSH ioctl, to delete all Veriexec entries. Sample
    usage:

        # veriexecctl flush

  - Add a 'veriexec_flags' rc(8) variable, and make its default have
    the '-k' flag. On systems using the default signatures file
    (generaetd from running 'veriexecgen' with no arguments), this will
    use additional 32kb of kernel memory on average.

  - Add a '-e' flag to veriexecctl, to evaluate the fingerprint during
    load. This is done automatically for files marked as 'untrusted'.


Misc. stuff:
  - The code for veriexecctl was massively simplified as a result of
    eliminating the need for VERIEXEC_TABLESIZE, and now uses a single
    pass of the signatures file, making the loading somewhat faster.

  - Lots of minor fixes found using the (still under development)
    Veriexec regression testsuite.

  - Some of the messages Veriexec prints were improved.

  - Various documentation fixes.


All relevant man-pages were updated to reflect the above changes.

Binary compatibility with existing veriexecctl binaries is maintained.
2007-05-15 19:47:43 +00:00
pooka
ddf4b3708e * free framebuf after use (even in the common path ;)
* simplify a loop
2007-05-15 17:08:34 +00:00
pooka
8427494a96 don't leak memory if getting data from the buffer fails
CID 4485
2007-05-15 14:22:58 +00:00
pooka
eaf4ddfb76 remember to free longname if getting vattr from the message fails
CID 4486
2007-05-15 14:17:30 +00:00
pooka
9fec81140f In case we counter a protocol error while parsing the readdir response,
completely release our directory cookie - it's unlike we'll be coming
back to it.  And if we do, it'll just be autogenerated.

CID 4487
2007-05-15 14:12:41 +00:00
pooka
5252a3b094 free name from proto_getstat() after use
CID 4488
2007-05-15 13:56:00 +00:00
pooka
e3468dbcce adapt to "step 3" of puffs_framebuf changes 2007-05-15 13:46:47 +00:00
martti
96f087cc74 /etc/services needs special attention. 2007-05-15 12:59:27 +00:00
christos
5b9bddf888 PR/36319: Michael van Elst: rpcinfo -p requires root privileges
Explicitly chmod 777 the local socket.
2007-05-13 21:19:56 +00:00
christos
de327a0164 - WARNS = 4
- De __P
- While starting up, send messages to stderr not syslog.
- Fix error messages
- Don't play with umask and forget to restore it on error
2007-05-13 20:03:46 +00:00
christos
3409f393b9 specify the initial hash parameters so that we don't end up rehashing a
zillion times. Makes this run 50x faster.
2007-05-13 17:43:59 +00:00
christos
4ef5a01a14 PR/36313: Juergen Hannken-Illjes: Change the name "rpcbind" to "sunrpc"
which is used in the new services.
2007-05-13 13:38:29 +00:00
pooka
c495e43bb1 uint32_t vs. size_t pointer adjustments for LP64 build 2007-05-12 09:41:30 +00:00
pooka
3a7dcceb40 use puffs_mainloop(); puffs_framebuf_eventloop() is a goner 2007-05-11 21:27:45 +00:00