Commit graph

1365 commits

Author SHA1 Message Date
John Birrell
2b3f4eadb0 Fix a cast from a pointer to a long instead of an int which was enough
to ruin a 64-bit day.
1998-01-24 20:57:38 +00:00
Warner Losh
9f6c32362c Eliminate sprintf
Obtained from:OpenBSD (theo de raadt)
1998-01-21 21:46:36 +00:00
Bruce Evans
c7b367098d Fixed #includes in the synopsis and in an example. <sys/socket.h>
isn't a prerequisite, since it isn't required for the prototypes
and isn't always needed to call the functions (the address family
might be a variable).
1998-01-20 11:03:15 +00:00
Bruce Evans
2aeb5561dd Moved most of the (source-level) compatibility hacks for the vfsconf
interface from sys/mount.h to libc/getvfsent.c  The new interface is
now the default.
1998-01-20 10:36:24 +00:00
Alexander Langer
2768e0c4b5 Added cross references to mincore(2) and minherit(2).
Obtained from:	OpenBSD
1998-01-20 03:59:07 +00:00
Alexander Langer
891d6e5881 Added #include <sys/types.h> to synopsis.
Obtained from:	OpenBSD
1998-01-20 03:52:49 +00:00
Bruce Evans
1e69872de7 Started getting rid of the compatibility cruft for the Lite1 mount()
and the pre-Lite2 vfsconf interfaces.

For getvfsent.c, just define _OLD_VFSCONF.  This will give the
current default macro hacks in <sys/mount.h> when the default is
reversed.  This is an intermediate step.
1998-01-17 16:32:14 +00:00
Bruce Evans
c8b6b31f15 Fixed missing #include in synopsis. 1998-01-16 13:41:28 +00:00
Bruce Evans
a182428346 Fixed wrong prototype for clock_getres(). 1998-01-16 13:39:49 +00:00
Bruce Evans
d142a33b7f Fixed wrong prototypes. Most of the prototypes had missing return types,
or missing const's or `short *' instead of `[ug]id_t *' in argument types.
1998-01-16 13:33:09 +00:00
Bruce Evans
04b7c9479b Fixed missing return type in a prototype. 1998-01-16 13:10:18 +00:00
Stephen McKay
4773010d2f Return the correct errno from getcwd() even if free() or closedir()
overwrites it.  This actually showed up when running under an old
kernel when free() called the madvise() stub which set errno, causing
getcwd() to return EOPNOTSUPP instead of ERANGE.
1998-01-15 13:52:55 +00:00
John Birrell
c61e516832 Add #ifndef __NETBSD_SYSCALLS around calls to issetugid() which
do not exist in NetBSD 1.3.
1998-01-15 09:58:08 +00:00
Alexander Langer
cbc3778c2f Typo fix.
Added EOPNOTSUPP and EMLINK to errors section.
Added symlink(2) xref.

Obtained from:	OpenBSD
1998-01-15 04:31:28 +00:00
John Birrell
da8a9b61c7 Include string.h for memcpy function prototype. 1998-01-14 08:14:56 +00:00
Alexander Langer
4d1b2e67ae Consistently reference init as .Xr init 8.
Obtained from:	OpenBSD
1998-01-13 05:09:16 +00:00
Alexander Langer
e3abfc8253 Return type and argument to sleep are unsigned int. 1998-01-13 04:32:00 +00:00
Alexander Langer
26db1da8a9 Dump the constant NGROUPS in favor of the POSIX way:
sysconf(_SC_NGROUPS_MAX).

Submitted by:	bde
1998-01-13 01:30:17 +00:00
Alexander Langer
e4a6f1ad1f Use .Fn for sysconf(_SC_CLOCK_TCK) reference.
Added $Id$.
1998-01-13 01:21:19 +00:00
Alexander Langer
73a8c56ec1 Formatting fix & improved comment for struct timeval.
Obtained from:	OpenBSD
1998-01-11 22:28:56 +00:00
Alexander Langer
d4b1275d66 Fixed brk(2) xref.
Obtained from:	OpenBSD
1998-01-11 22:22:50 +00:00
Alexander Langer
21bcb535ea Added sys/types.h to synopsis as per POSIX.
Obtained from:	OpenBSD
1998-01-11 22:16:11 +00:00
Alexander Langer
7ea0dca625 Replace sys/param.h with sys/types.h as per POSIX.
Document the special case of gidsetlen == 0.

Partially obtained from: OpenBSD
1998-01-11 22:01:20 +00:00
Alexander Langer
6eba99b0db Document that arg max is controllable via sysctl. 1998-01-11 21:43:38 +00:00
Alexander Langer
92d7687ee6 Formatting fix.
Obtained from:	OpenBSD
1998-01-11 17:49:51 +00:00
Alexander Langer
fa70846939 Added EMFILE and ENFILE to errors section.
Obtained from:	OpenBSD
1998-01-11 17:07:20 +00:00
Alexander Langer
5e8b84b628 .Xr sigvec --> sigaction
Obtained from:	OpenBSD
1998-01-11 16:56:01 +00:00
Alexander Langer
a5c3b32774 Add <sys/types.h> to synopsis.
Correct a grammatical error.
Add cross-reference to setrlimit(2).

Obtained from:	OpenBSD
1998-01-11 16:51:49 +00:00
John Birrell
f1d896d117 Make a couple of the stat flags dependent on the sys/stat.h header file
that this source is compiled against. This source is referenced by
install which is needed as a build tool and must be able to compile
against NetBSD headers and libraries if we have a hope of supporting
another architecture.

With this change, that's two working programs down and 3945 (?) to go.
The other one was make, but that didn't need any changes to work under
FreeBSD/Alpha. 8-)
1998-01-09 06:14:59 +00:00
Warner Losh
3c8e19e155 handle long usernames more carefully
Reviewed by:	guido
Obtained from:	OpenBSD (Theo de Raadt)
1998-01-07 00:28:36 +00:00
Philippe Charnier
125c8263d8 Convert to mdoc format. 1998-01-05 07:12:16 +00:00
Andrey A. Chernov
b250f24856 size_t -> unsigned
in arguments length INT_MAX overflow check
Suggested-by: bde
1998-01-04 22:28:47 +00:00
Alexander Langer
e69bcfc3bc Expanded cross references. 1998-01-02 19:22:52 +00:00
Andrey A. Chernov
8c6d2f42e1 1. EOF was returned when the buffer size was larger than INT_MAX. This
case has very little to do with the output size being larger than
   INT_MAX.
2. The new #include of <limits.h> was disordered.
3. The new declaration of `on' was disordered (integer types go together).
4. Testing an unsigned value for > 0 was fishy.

Submitted by: bde
1998-01-01 20:15:58 +00:00
Alexander Langer
5a5b9efe70 Drop the use of caddr_t in conjunction with mmap(2). 1997-12-31 03:15:06 +00:00
Alexander Langer
7167d5b04c Convert caddr_t --> void * for sys/mman.h functions.
mlock, mmap, mprotect, msync, munlock, and munmap are defined by
POSIX as taking void *.  The const modifier has been added to
mlock, munlock, and mprotect as the standard dictates.

minherit comes from OpenBSD and has been updated to conform with
their recent change to void *.

madvise and mincore are not defined by POSIX, but their arguments
have been modified to be consistent with the POSIX-defined functions.
mincore takes a const pointer, but madvise does not due to the
MADV_FREE case.

Discussed with:	bde
1997-12-31 01:22:01 +00:00
Alexander Langer
1948b335ba Fixed formatting of the MADV_FREE flag description.
Pointed out by:	bde
1997-12-30 05:17:33 +00:00
Alexander Langer
22d0a78532 Typo fix. 1997-12-30 04:05:47 +00:00
Alexander Langer
fd630dd1cc Document MS_SYNC. 1997-12-30 03:26:15 +00:00
Wolfram Schneider
de635b0683 The terminating character in strings is NUL', not NULL'. 1997-12-28 12:06:29 +00:00
Tim Vanderhoek
02e6c12b3c fork() checks RLIMIT_NPROC, not RLIMIT_NOFILE.
pr:		docs/5260
submitted-by:	Niall Smart [3]njs3@doc.ic.ac.uk
1997-12-26 16:11:49 +00:00
Alexander Langer
3b7c07b1f2 Removed unnecessary initialization of hp in gethostbyaddr_r. 1997-12-25 04:21:08 +00:00
Andrey A. Chernov
92e88f87b9 Add overflow checks: if output size becomes bigger than INT_MAX,
just return EOF
1997-12-25 00:32:17 +00:00
Andrey A. Chernov
fb25537fb8 Correct type of stored argument place (from previous fix) 1997-12-24 23:54:19 +00:00
Andrey A. Chernov
947d101171 1) Restore back comment about snprintf()
2) Optimize string buffer copy to call memcpy() and update pointers
only for count > 0, it makes snprintf(NULL, 0, ...) more efficient
1997-12-24 23:23:18 +00:00
Andrey A. Chernov
6e690ad4ca Return back to BSD snprintf semantics which recent C9x standard adopts
instead of Singe Unix, thanx Bruce for explaining, I am not realize
standards war was there.

But now, fix n == 0 case to not return error and fix check for too
big n.

Things left to do: check for overflow in arguments.
1997-12-24 23:02:47 +00:00
Andrey A. Chernov
e0b123f6d0 1) Oops! Insert again if (n == 0) return 0.
Final word is Bruce's quote:

C9x specifies the BSD4.4-Lite behaviour:

       [#3] ...   Thus,  the
       null-terminated  output  has  been completely written if and
       only if the returned value is less than n.

It means that if we not have any null-terminated output as for n == 0
we can't return value less than n, so we forced to return value
equal to n i.e. 0

The next good thing is glibc compatibility, of course.

2) Do check for too big n in machine-independent way.
3) Minor optimization assuming EOF is < 0
1997-12-24 20:24:08 +00:00
Andrey A. Chernov
5ebfa8de69 Back out part related to "return 0 if n == 0" and return EOF as before.
The main argument is that it is impossible to determine if %n evaluated or not
when snprintf return 0, because it can happens for both n == 0 and n == 1.
Although EOF here is good indication of the end of process, if n is
decreased in the loop...
Since it is already supposed in many places that EOF *is* negative, f.e.
from Single Unix specs for snprintf
"return ... a negative value if an output error was encountered"
this not makes situation worse.
1997-12-24 14:32:40 +00:00
Andrey A. Chernov
97adcd5ba1 Fix snprintf(...%n...)
to pass not more than buffer size to %n agrument, old variant
always assume infinite buffer.
%n is for actually transmitted characters, not for planned ones.
1997-12-24 13:47:13 +00:00
Andrey A. Chernov
a65a537cb1 Remove wrong comment about snprintf:
"return the number of bytes needed, rather the number used"

According to Single Unix specs:

Upon successful completion, these functions return the number of bytes
transmitted excluding the terminating null
1997-12-24 13:17:13 +00:00
Andrey A. Chernov
4ecaf22055 snprintf return value fixes to conform Single Unix specs:
1) if buffer size is smaller than arguments size, return buffer
size, not arguments size as before.

2) if buffer size is 0, return 0, not EOF as before.
(now it is compatible with Linux and Apache implementations too).

NOTE: Single Unix specs says:

If the value of n {buffer size} is zero on a call to snprintf(), an
unspecified value less than 1 is returned.

It means we can't return EOF since EOF can take *any* value in general
not especially < 1. Better variant will be return -1 (it is less then
1 and different with n == 1 case) but -1 value is already occuped by
EOF in our implementation, so we can't distinguish true IO error
in that case. So 0 here is only possible case still conforming
to Single Unix specs.
1997-12-24 12:31:32 +00:00
Bruce Evans
6a93659f24 Comment that long double is poorly implemented, not that it is unimplemented. 1997-12-19 21:59:22 +00:00
Bruce Evans
b86be9d1f7 Put the .PATH statement first as in all other libc Makefile.inc's. 1997-12-19 21:56:38 +00:00
Bruce Evans
b0e2424631 Format the MLINKS statement the same as in most other libc Makefile.inc's. 1997-12-19 21:53:35 +00:00
John Birrell
d5bc59bb81 Fix recursion problem which occurs when a signal is received during
a malloc. The signal handler creates a thread which requires a malloc...
For now, the only thing to do is to block signals. When we move user
pthreads to use the kernel threads, mutexes will be implemented in kernel
space and then malloc can revert.
1997-12-15 02:12:42 +00:00
Bruce Evans
22301c4b46 Fixed spelling of EACCES. 1997-11-23 17:58:55 +00:00
Bruce Evans
8fddd06099 Fixed long double formats. They were mostly not implemented except
on systems where long doubles are just doubles.  FreeBSD hasn't
been such a system since it started using gcc-2.5 many years ago.
The fix is of low quality.  It loses precision.

scanf() of long doubles doesn't seem to be used much, but gdb-4.16
uses %Lg format in its expression parser if it thinks that the
system supports printf'ing of long doubles.  The symptom was that
floating point literals were usually interpreted to be 0.0.
1997-11-23 06:02:47 +00:00
James Raynard
46eba3e8b7 Fix bit-twiddling in sigismember(3).
Note this ONLY affects the function version - the macro version is always
used unless for some reason you put #undef sigismember in your code before
calling it.
PR:		3615
Submitted by:	Nanbor Wang <nw1@cs.wustl.edu> (slightly amended patch)
1997-11-21 23:18:05 +00:00
Bruce Evans
362f4dce74 Don't check for the unlikely case of useconds == 0 here. The kernel
checks it.

Fixed a style bug.
1997-11-20 15:13:20 +00:00
Bruce Evans
70df31a627 stat() the correct file in execvp() so that the fine tuned errno handling
actually works.
1997-11-20 15:09:38 +00:00
John Polstra
3359c58c41 Add cross-references to rfork(2). 1997-11-18 03:59:30 +00:00
Bill Paul
d9cc92f584 Close PR #4867: improve _listmatch() to avoid returning false positives.
PR: 4867
1997-11-16 03:02:39 +00:00
Julian Elischer
52bf64c787 Reviewed by: hackers@freebsd.org in general
Obtained from: Whistle Communications tree

Add an option to the way UFS works dependent on the SUID bit of directories
This changes makes things a whole lot simpler on systems running as
fileservers for PCs and MACS. to enable the new code you must
1/ enable option SUIDDIR on the kernel.
2/ mount the filesystem with option suiddir.
hopefully this makes it difficult enough for people to
do this accidentally.
see the new chmod(2) man page for detailed info.
1997-11-13 00:28:51 +00:00
Julian Elischer
b1f4a44b03 Reviewed by: various.
Ever since I first say the way the mount flags were used I've hated the
fact that modes, and events, internal and exported, and short-term
and long term flags are all thrown together. Finally it's annoyed me enough..
This patch to the entire FreeBSD tree adds a second mount flag word
to the mount struct. it is not exported to userspace. I have moved
some of the non exported flags over to this word. this means that we now
have 8 free bits in the mount flags. There are another two that might
well move over, but which I'm not sure about.
The only user visible change would have been in pstat -v, except
that davidg has disabled it anyhow.
I'd still like to move the state flags and the 'command' flags
apart from each other.. e.g. MNT_FORCE really doesn't have the
same semantics as MNT_RDONLY, but that's left  for another day.
1997-11-12 05:42:33 +00:00
KATO Takenori
45d4f12362 Describe MNT_NOCLUSTER{R,W} flags.
Pointed out by:		bde
1997-11-09 03:36:26 +00:00
John-Mark Gurney
f668085d2d changed prototype to match text
changed sysctl to lsvfs as "sysctl vfs" doesn't return a listing of
possible filesystem names
1997-11-05 10:09:33 +00:00
Steve Price
0ce1971c2a Correct description of which runes are encoded as two bytes.
PR:		4555
Submitted by:	Dmitrij Tejblum <tejblum@arc.hq.cti.ru>

[0x0400 - 0xffff] [bbbbbbbb.bbbbbbbb] -> 1110bbbb, 10bbbbbb, 10bbbbbb
.Ed
.Pp
If more than a single representation of a value exists (for example,
0x00; 0xC0 0x80; 0xE0 0x80 0x80) the shortest representation is always
used (but the longer ones will be correctly decoded).
.Pp
The final three encodings provided by X-Open:
.Bd -literal
[00000000.000bbbbb.bbbbbbbb.bbbbbbbb] ->
	11110bbb, 10bbbbbb, 10bbbbbb, 10bbbbbb

[000000bb.bbbbbbbb.bbbbbbbb.bbbbbbbb] ->
	111110bb, 10bbbbbb, 10bbbbbb, 10bbbbbb, 10bbbbbb

[0bbbbbbb.bbbbbbbb.bbbbbbbb.bbbbbbbb] ->
	1111110b, 10bbbbbb, 10bbbbbb, 10bbbbbb, 10bbbbbb, 10bbbbbb
.Ed
.Pp
which provides for the entire proposed ISO-10646 31 bit standard are currently
not implemented.
.Sh "SEE ALSO"
.Xr mklocale 1 ,
.Xr setlocale 3
@


1.4
log
@Don't use hardcoded *roff font change requests.  Do it
via mdoc macros instead.
@
text
@d37 1
a37 1
.Dd "June 4, 1993"
@


1.3
log
@Very minor mdoc cleanup.
@
text
@d44 2
a45 1
\fBENCODING "UTF2"\fP
@


1.2
log
@Another round of various man page cleanups.
@
text
@d65 1
a65 1
.sp
d81 1
a81 1
.sp
@


1.2.2.1
log
@YAMFC:

Commit all of the -current changes that apply to 2.2.  These fall into
several categories:

- Cosmetic/mdoc changes.  They don't really afect the output
  at all, but having them in 2.2 will make it easier to diff the man
  pages later when looking for real changes.
- Update some man pages to reflect the current 2.2 header files.
- Sort xrefs.
- A few typo fixes.
- And a few changes that actualy added text to the man page that should
  be reflected in 2.2.
- Add some missing MLINKS.

Requested by: bde
@
text
@d44 1
a44 2
.Nm ENCODING
.Qq UTF2
d65 1
a65 1
.Pp
d81 1
a81 1
.Pp
@


1.2.2.2
log
@MFC:  Just the locale fixes (small doc tweaks for the most part)
and the new strptime(3) call.  Having added something, does this
require a version bump?  Haven't we bumped once already?

There are a *LOT* of additional 3.0 changes to be merged but I'm not
entirely comfortable with some of them so I'll take the conservative
(read: cowardly :) way out and just merge this much.
@
text
@d37 1
a37 1
.Dd June 4, 1993
@


1.1
log
@Initial revision
@
text
@d41 1
a41 1
.Nm UTF2
@


1.1.1.1
log
@BSD 4.4 Lite Lib Sources
@
text
@@


1.1.1.1.6.1
log
@Phase 2 of merge - also fix things broken in phase 1.
Watch out for falling rock until phase 3 is over!

libc completely merged except for phkmalloc & rfork (don't know if David
wants that).

Some include files in sys/ had to be updated in order to bring in libc.
@
text
@d41 1
a41 1
.Nm utf2
@


1.1.1.1.6.2
log
@This 3rd mega-commit should hopefully bring us back to where we were.
I can get it to `make world' succesfully, anyway!
@
text
@d41 1
a41 1
.Nm UTF2
@
1997-11-05 04:18:42 +00:00
Bill Paul
acbf996600 In clntudp_call(), it is possible that xdr_replymsg() might fail
partway through its attempt to decode the result structure sent by
the server. If this happens, it can leave the result partially
populated with dynamically allocated memory. In this event, the
xdr_replymsg() failure is detected and RPC_CANTDECODERES is returned,
but the memory in the partially populated result struct is not
free()d.

The end result is that memory is leaked when an RPC_CANTDECODERES
error occurs. (This condition can occur if a CLIENT * handle is created
using clntudp_bufcreate() with a receive buffer size that is too small
to handle the result sent by the server.)

Fixed by setting reply_xdrs.x_op to XDR_FREE and calling
xdr_replymsg() again to free the memory if an RPC_CANTDECODERES error
is detected.

I suspect that the clnt_tcp.c, clnt_unix.c and clnt_raw.c modules
may ha a similar problem, but I haven't duplicated the condition with
those yet.

Found by: dbmalloc
1997-10-26 18:47:31 +00:00
Wolfgang Helbig
60152ec531 Typo. 1997-10-26 10:37:35 +00:00
John Polstra
11ea2762eb Change L_SET to SEEK_SET for POSIX compliance.
Submitted by:	Dean Gaudet <dgaudet@arctic.org>
1997-10-26 00:41:51 +00:00
Andrey A. Chernov
7a54ede12f Back out part of OpenGroup specs about limiting max arg since it may break
compatibility.
1997-10-22 12:04:49 +00:00
Andrey A. Chernov
45ea5f3053 Reflect usleep code changes:
Limit max arg
Change return type to int
1997-10-22 11:27:20 +00:00
Andrey A. Chernov
9a9098177b Changes in spirit of OpenGroup Singe Unix specs:
1) Limit max allowed argument to 1000000
2) Change return type from void to int to indicate premature termination
(by signal)
1997-10-22 10:55:49 +00:00
Joerg Wunsch
56728a2905 Document EINVAL as a possible return value from open(2). 1997-10-22 07:29:13 +00:00
Bruce Evans
b966cc2394 Sorted lists. 1997-10-21 08:41:15 +00:00
Bruce Evans
7280dd1a3b Removed unused file. It just forces a return value of 0 on success
(no carry), but mount() in the kernel has returned 0 on success since
prehistoric times.
1997-10-18 13:59:48 +00:00
Andrey A. Chernov
c717c2d74c Add $Id 1997-10-17 09:40:08 +00:00
Andrey A. Chernov
8cfedef0e6 Fix LONG_MAX overflowing
Return seconds if errno other than EINTR
Add $Id
Submitted by: bde with minor optimization by me
1997-10-17 09:35:50 +00:00
John Polstra
7019f59e32 Fix two bugs which caused various RPC programs (mountd, nfsd, ...)
to fail under certain circumstances.

1. In one spot, the ifr_flags member was being examined in the
wrong structure, thus it contained garbage.  On a machine in which
only the loopback interface was up, this caused everything that
wanted to talk to the portmapper to fail -- a particular problem
with laptops, where the pccard ethernet interface is likely to come
up long after the attempt to start mountd, nfsd, amd, etc.

2. Compounding the above problem, get_myaddress() returned a
successful status even though it failed to find an address that it
considered good enough.
1997-10-17 04:59:56 +00:00
Andrey A. Chernov
855a496c94 Copy time_to_sleep to time_remaining since it can be left
uninitialized if nanosleep returns early with agr error
1997-10-16 21:31:43 +00:00
Bruce Evans
a461908da4 Handle machine-dependent (stdlib) sources more automatically.
This fixes bugs in the manual handling.  abs.[cS] was handled too
specially and the wrong (.c) variant for each of div.[cS], labs.[cS]
and ldiv.[cS] was added to SRCS.  This caused the .c variant to be
used if `depend' was made and the .S version to be used otherwise.
1997-10-16 14:58:30 +00:00
Bruce Evans
1cbbb1ba4b Removed bogus .PATH statement. 1997-10-16 14:41:25 +00:00
Bruce Evans
da16ae8684 Removed the subdirectory paths from the definitions of MAN[1-9]. They
were a workaround for limitations in bsd.man.mk that were fixed about
2 years ago.
1997-10-16 14:26:13 +00:00
Bruce Evans
ae80efa54f Handle machine-dependent (m-d) (string) sources more automatically.
The names of m-d variants are now added (manually) to MDSRCS instead
of to SRCS, and the names of all machine-independent (m-i) variants
that can reasonably be replaced by an m-d variant are now added
(manually) to MISRCS instead of to SRCS, so that a simple substitution
can be used to discard the unused m-i variants.  MISRCS is potentially
all m-i sources, but the substitution is too simple to be fast, so
MISRCS should be kept reasonably small.

libc/Makefile.inc:
Do the substitution.

libc/i386/string/Makefile.inc:
Add to MDSRCS instead of to SRCS.  Add the names of all sources in this
directory, but no others.

libc/string/Makefile.inc
Add to MISRCS instead of to SRCS.  Add the names of all sources in this
directory.  Don't use (broken) explicit rules for special cases.
1997-10-16 13:46:50 +00:00
Andrey A. Chernov
74dcc37aef Reflect current sleep/usleep implementations state 1997-10-16 13:42:03 +00:00
Andrey A. Chernov
49620c896c Cleanup #includes 1997-10-16 13:35:25 +00:00
Masafumi Max NAKANE
d39b43a399 Proper spacing in the Synopsis. 1997-10-16 01:19:15 +00:00
Bruce Evans
c81c89b410 Include the machine-dependent Makefile.inc for sys in the correct place. 1997-10-15 16:29:14 +00:00
Bruce Evans
2bc3b4d735 Removed the subdirectory paths from the definitions of MAN[1-9]. They
were a workaround for limitations in bsd.man.mk that were fixed about
2 years ago.
1997-10-15 16:16:41 +00:00
Bruce Evans
e94b7ef033 Added some 2-line source files to get a direct correspondence
between sources and objects.  This will be used to avoid messy
special cases in Makefile.inc.
1997-10-15 15:27:19 +00:00
Peter Wemm
6173688707 Remove old SIGALRM absorbing back-compat code. It wasn't working at all
for the entire time that it was there, so obviously nothing needs it
anymore.

Note, unix98/single-unix spec v2 says that usleep() returns an int rather
than a void, to indicate whether the entire time period elapsed (0) or an
error (eg: signal handler) interrupted it (returns -1, errno = EINTR)
It is probably useful to make this change but I'll test it locally first
to see if this will break userland programs [much]...

Reviewed by: ache, bde
1997-10-15 14:11:08 +00:00
Peter Wemm
9f375c3252 Give up on the "try and compensate for broken programs" cruft and revert
back to the original single nanosleep() implementation.  This is POSIX and
Unix98 (aka single-unix spec v2) compliant behavior.  If a program sets
alarm(2) or an interval timer (setitimer(2)) without a SIGALRM handler
being active, sleep(3) will no longer absorb it, and the program will get
what it asked for..... :-]

The original reason for this in the first place (apache) doesn't seem to
need it anymore, according to Andrey.

Reviewed by: ache, bde
1997-10-15 14:06:15 +00:00
Bill Paul
4c45fb08aa Correct a bug in the 'allow arbitrary number of socket descriptors' changes
made to the RPC code some months ago. The value of __svc_fdsetsize is being
calculated incorrectly.

Logically, one would assume that __svc_fdsetsize is being used as a
substitute for FD_SETSIZE, with the difference being that __svc_fdsetsize
can be expanded on the fly to accomodate more descriptors if need be.
There are two problems: first, __svc_fdsetsize is not initialized to 0.
Second, __svc_fdsetsize is being calculated in svc.c:xprt_registere() as:

                __svc_fdsetsize = howmany(sock+1, NFDBITS);

This is wrong. If we are adding a socket with index value 4 to the
descriptor set, then __svc_fdsetsize will be 1 (since fds_bits is
an unsigned long, it can support any descriptor from 0 to 31, so we
only need one of them). In order for this to make sense with the
rest of the code though, it should be:

                __svc_fdsetsize = howmany(sock+1, NFDBITS) * NFDBITS;

Now if sock == 4, __svc_fdsetsize will be 32.

This bug causes 2 errors to occur. First, in xprt_register(), it
causes the __svc_fdset descriptor array to be freed and reallocated
unnecessarily. The code checks if it needs to expand the array using
the test: if (sock + 1 > __svc_fdsetsize). The very first time through,
__svc_fdsetsize is 0, which is fine: an array has to be allocated the
first time out. However __svc_fdsetsize is incorrectly set to 1, so
on the second time through, the test (sock + 1 > __svc_fdsetsize)
will still succeed, and the __svc_fdset array will be destroyed and
reallocated for no reason.

Second, the code in svc_run.c:svc_run() can become hopelessly confused.
The svc_run() routine malloc()s its own fd_set array using the value
of __svc_fdsetsize to decide how much memory to allocate. Once the
xprt_register() function expands the __svc_fdset array the first time,
the value for __svc_fdsetsize becomes 2, which is too small: the resulting
calculation causes the code to allocate an array that's only 32 bits wide
when it actually needs 64 bits. It also uses the valuse of __svc_fdsetsize
when copying the contents of the __svc_fdset array into the new array.
The end result is that all but the first 32 file descriptors get lost.

Note: from what I can tell, this bug originated in OpenBSD and was
brought over to us when the code was merged. The bug is still there
in the OpenBSD source.

Total nervous breakdown averted by: Electric Fence 2.0.5
1997-10-14 21:50:17 +00:00
Bruce Evans
b2fad8ae7a Moved `SRCS+= frexp.c' to the correct Makefile.inc.
Sorted SRCS.
1997-10-14 07:43:33 +00:00
Bruce Evans
9386dc4deb Moved `SRCS+= frexp.c' to the correct Makefile.inc. 1997-10-14 07:43:18 +00:00
Bruce Evans
1df595f25d Fixed searching of $PATH in execvp(). Do what sh(1) should do according
to POSIX.2.  In particular:

- don't retry for ETXTBSY.  This matches what sh(1) does.  The retry code
  was broken anyway.  It only slept for several seconds for the first few
  retries.  Then it retried without sleeping.
- don't abort the search for errors related to the path prefix, in
  particular for ENAMETOOLONG, ENOTDIR, ELOOP.  This fixes PR1487.  sh(1)
  gets this wrong in the opposite direction by never aborting the search.
- don't confuse EACCES for errors related to the path prefix with EACCES
  for errors related to the file.  sh(1) gets this wrong.
- don't return a stale errno when the search terminates normally without
  finding anything.  The errno for the last unsuccessful execve() was
  usually returned.  This gave too much precedence to pathologies in the
  last component of $PATH.  This bug is irrelevant for sh(1).

The implementation still uses the optimization/race-inhibitor of trying
to execve() things first.  POSIX.2 seems to require looking at file
permissions using stat().  We now use stat() after execve() if execve()
fails with an ambiguous error.  Trying execve() first may actually be a
pessimization, since failing execve()s are fundamentally a little slower
than stat(), and are significantly slower when a file is found but has
unsuitable permissions or points to an unsuitable interpreter.

PR:		1487
1997-10-14 07:23:16 +00:00
Bill Paul
e882d43eca Improve the innetgr() NIS+ compat kludge. We should only fail over to the
'slow' lookup if we get a YPERR_MAP (no such map in server's domain) error
instead of failing over on any error. In the latter case, if the 'fast'
search fails legitimately (i.e. the user or host really isn't a member
of the specified netgroup) then we end up doing the 'slow' search and
failing all over again. The result is still correct, but cycles are
consumed for no good reason.

Also removed the #ifdef CHARITABLE since the compat kludge is no longer
optional.
1997-10-13 17:09:15 +00:00
Bill Paul
c17942ca57 NIS+ compatibility kludge. A long time ago, I set up innetgr() so
that if searching through the special netgroup.byhost or netgroup.byuser
maps didn't work, we would roll over to the 'slow' method of grovelling
though the netgroup map and working out the dependencies on the fly.
But I left this option hidden inside an #ifdef CHARITABLE since I
didn't think I'd ever need it.

Well, the Sun rpc.nisd NIS+ server in YP compat mode doesn't support
the .byhost and .byuser reverse maps, so the  failover is necessary
in order to be compatible. *sigh*

This closes PR #3891, and should be merged into RELENG_2_2.
1997-10-11 00:03:25 +00:00
Philippe Charnier
8b76e1d7a8 Staticize usage(). Cosmetics. 1997-10-10 06:27:07 +00:00
John Dyson
44f203cb96 Add the AIO/LIO to libc. They aren't fully done yet, but have been in the
kernel for a few months.
1997-10-10 05:48:16 +00:00
Wolfgang Helbig
b9b51fb731 Merged in better support of ISO 8601 from elsie.nci.nih.gov.
Added the conversion specifiers %g and %G, that are replaced
by the year which contains the greater part of the week in question.
1997-10-03 19:06:57 +00:00
Wolfram Schneider
bf5cbf3551 Sort cross refereces in section SEE ALSO. 1997-09-29 19:11:55 +00:00
Mike Smith
af35b9ccb0 Revert the previous prototype un-typo. Add a brief comment warning that
"fixing" it is not a good idea.
1997-09-28 17:11:31 +00:00
Mike Smith
378a2883fe Typo fix 1997-09-28 03:28:34 +00:00
Mike Smith
27c729f066 Fix typo in signal() prototype 1997-09-28 03:28:09 +00:00
Andrey A. Chernov
46dba712f1 Use revived __maskrune for digittoint
Minor formatting
1997-09-27 04:34:35 +00:00
Andrey A. Chernov
3f2fd98c12 Move it under XPG4 define 1997-09-25 23:20:26 +00:00
Andrey A. Chernov
bed2de7d4c Move MSKanji under XPG4 define 1997-09-25 23:18:10 +00:00
Andrey A. Chernov
1284c1ad08 __maskrune --> __istype 1997-09-25 23:10:38 +00:00
Julian Elischer
16f76e6f06 Submitted by: Sin'ichiro MIYATANI / Phase One, Inc <siu@phaseone.co.jp>
Basic support for the Shift JIS encoding of japanese.
(and one tiny typo fixed in a comment)
1997-09-24 20:38:12 +00:00
Peter Wemm
42396e05cf Apply fts() fix from PR#4593
Submitted by:  Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>
1997-09-22 12:48:40 +00:00
Bill Paul
0e710e8f95 Make selection logic more strict. Only select AF_INET loopback interfaces
that are up on second (loopback only) pass, and only select non-loopback
AF_INET interfaces that are up on first pass.
1997-09-21 23:04:51 +00:00
Poul-Henning Kamp
d030d2d2ae Many places in the code NULL is used in integer context, where
plain 0 should be used.  This happens to work because we #define
NULL to 0, but is stylistically wrong and can cause problems
for people trying to port bits of code to other environments.

PR:		2752
Submitted by:	Arne Henrik Juul <arnej@imf.unit.no>
1997-09-18 14:08:40 +00:00
Philippe Charnier
34384756cd environmental -> environment. 1997-09-18 06:55:21 +00:00
Peter Wemm
9e06e6da51 Some adjustments for the resolver use of poll(). For some reason I thought
an unimplemented syscall returned ENOSYS, rather than EINVAL.  I have run
statically linked code with this wrapper and it does appear to work fine
on 2.2-stable which doesn't have poll().  ktrace shows the poll syscall fail
once and the fallback to select() working.
1997-09-16 06:03:54 +00:00
Peter Wemm
b7ecb08afa Put a system call not present checking wrapper around the call to
__getcwd().  I've got this libc code running on one of my machines
at the moment without the __getcwd() syscall being present.
1997-09-16 06:00:50 +00:00
Wolfram Schneider
211fed7e35 Fix yet a minor stylistic nit from Bruce.
(`cvs diff -ib' print one new char ;-).
1997-09-15 19:37:23 +00:00
Poul-Henning Kamp
36dff60096 Fix yet a minor stylistic nit from Bruce (Doesn't he have more
important things to do ?? :-)

Prepare for the likely case of a change in kernel algorithm.
1997-09-15 17:40:15 +00:00
Poul-Henning Kamp
9c2d6fcf05 Fix a buglet and a couple of stylistic nits from Bruce. 1997-09-15 08:25:14 +00:00
Wolfram Schneider
8be26e5d0f Potential bufferflow in getpwent(), getpwnam() and getpwuid()
PR: bin/4134
Submitted by:	nick@foobar.org
1997-09-14 18:16:11 +00:00
Poul-Henning Kamp
27262cac33 Add __getcwd() syscall, and have getcwd() take a shot at it.
If your kernel doesn't support __getcwd() or if __getcwd() cannot
deliver because of cache expiry, it does the canonical thing.
1997-09-14 16:57:27 +00:00
Peter Wemm
535db1806c Call poll(2) from within the resolver but adapt to older kernels without it
if necessary.  This removes the need to malloc large fd_set's for selecting
on high fd's (larger than FD_SETSIZE at libc compile time).

The syscall adaptive stuff only happens on the very first call.  SIGSYS
is masked, and if the call to poll fails with ENOSYS, then we use select
for the life of the program.  If poll does not fail with ENOSYS, then we
always use poll and skip the once-off signal masking gunk.

This may be overkill, but it saved my neck a few times while working on
multiple different sets of kernel sources, some with poll, some without.
1997-09-14 09:44:34 +00:00
Peter Wemm
16115af153 A poll(2) manpage.
Obtained from: NetBSD
1997-09-14 05:44:35 +00:00
Peter Wemm
b52c91dd7e Generate poll syscall stub 1997-09-14 03:29:55 +00:00
Joerg Wunsch
dbf4898f6c Document SA_NOCLDWAIT.
Make all the SA_* flags go into a tagged list, to improve readability.
1997-09-13 19:43:24 +00:00
Bruce Evans
065bebee55 Removed superfluous quoting of function args. 1997-09-07 04:10:35 +00:00
Bruce Evans
f12d1f0bf6 Fixed style bug in pseudocode. 1997-09-07 04:01:27 +00:00
Bruce Evans
853aa1faf3 Fixed synopsis. The envp arg for execle() can't be given in the prototype.
Fortunately, the man page doesn't refer to "envp" so just deleting it is OK.
1997-09-03 03:25:35 +00:00
Brian Somers
a367bd9e25 Add "options no_tld_query" to resolv.conf.
Mention the capability in resolver(5).
Mention that RES_OPTIONS can be used in resolver(5).
Discussed with: -hackers
1997-09-01 01:19:23 +00:00
Bruce Evans
4447a79bf7 Fixed inclomplete function type in synopsis. 1997-08-31 21:54:10 +00:00
Poul-Henning Kamp
188891873e Another 32bits of 64bits conformance.
Reviewed by:	phk
Submitted by:	jdp
1997-08-31 05:59:39 +00:00
Peter Wemm
77909f5978 Initial elf nlist support, mostly stolen from OpenBSD (they use standard
#defines that are compatable with ours).  I made some some minor tweaks
to the leading '_' tests.

Again, this is off by default for the moment.  This probably should be
split into seperate files (like some of our other libc files that could
do with some splitting).

Obtained from: OpenBSD (plus some minor tweaks)
1997-08-31 00:08:35 +00:00
KATO Takenori
01f770e87c Added HW_MACHINE_ARCH. 1997-08-30 02:26:36 +00:00
Warner Losh
9a91f1cc25 Merge in the safe chdir changes from Todd Miller's mods to the OpenBSD
tree.  Also merge in fix to NetBSD PR #1495.  These represent 1.3-1.9 in
the OpenBSD tree.  Make minor KNF changes to new code (which is in the
OpenBSD as 1.10).  This avoids the symlink race problems.

These patches should go into 2.2.5 before the ship if they don't
break anything in -current.
Reviewed by:	Bruce Evans
Obtained from:	OpenBSD
1997-08-29 22:56:41 +00:00
John Polstra
9295bb8d0d Add a stub version of getpublickey(), in order to eliminate an
undefined symbol referenced from libc.  Without the stub, it is
impossible to execute any program using the shared library if
LD_BIND_NOW=1 is in the environment.  The stub always returns
failure, but it can be overridden outside the library when necessary.

I don't know whether this is the "correct" fix, but it is intolerable
to have any undefined symbols referenced from libc.
1997-08-28 21:50:33 +00:00
Andrey A. Chernov
eb8eee5a55 Use getpwnam(getlogin()) before getpwuid(getuid()) 1997-08-27 13:36:34 +00:00
Poul-Henning Kamp
263f4be35c Improvement of type independency for the bitmap.
This makes 64bit operation more likely.

Reviewed by:	phk
Submitted by:	jdp
1997-08-27 12:04:33 +00:00
Poul-Henning Kamp
cd15afa3e8 Malloc option H is now default. 1997-08-27 06:40:34 +00:00
Warner Losh
3fa69daee8 Don't getenv(HOME) when set[ug]od. This can lead to a buffer overflow and
elevated privs.
Obtained from: OpenBSD
1997-08-27 05:27:53 +00:00
Steve Price
a89989b26f Get rid of integer overflow warning.
PR:		misc/3575
Submitted by:	Bruce Evans <bde@zeta.org.au>
1997-08-23 23:51:12 +00:00
Steve Price
da0a2ddec5 Reference the correct version of BSD at the bottom of the
manpage.

PR:		docs/3735
1997-08-23 21:32:50 +00:00
Bruce Evans
1ae93414c3 Fixed off by 1 error. 1997-08-21 19:44:41 +00:00
Peter Wemm
04b8783cda Manpage for getsid(2). 1997-08-19 07:19:43 +00:00
Peter Wemm
4ff76833b4 Forgot to mention what getpgid(0) does. 1997-08-19 07:04:43 +00:00
Peter Wemm
ff31b5e404 Manpage for getpgid(2), wording taken from NetBSD. 1997-08-19 07:00:53 +00:00
Peter Wemm
38fed76f7f Syscall stubs for getpgid()/getsid(). 1997-08-19 06:23:45 +00:00
Steve Price
51cc902b40 Reflect reality of sticky bits and UFS-based filesystems.
PR:		docs/4198
Submitted by:	Ada T. Lim <ada@not-enough.bandwidth.org>
1997-08-17 00:19:28 +00:00
Steve Price
449a542231 Describe the QCMD macro and its parameters.
PR:		docs/4261
1997-08-17 00:08:40 +00:00
David Greenman
f5f31fba12 Fixed file descriptor leak that occurs after certain types of failures.
PR:		3516
Submitted by:	Matthew Flatt <mflatt@cs.rice.edu>
1997-08-15 05:21:16 +00:00
Andrey A. Chernov
422ff09040 Explicitly point that it_value == 0 disables timer regardles of
it_interval value. It is backward-compatible with previous usage
and SunOS-compatible now.
1997-08-14 08:26:25 +00:00
Andrey A. Chernov
3ece8e2b27 Describe itimerfix upper limit 1997-08-14 07:57:58 +00:00
Andrey A. Chernov
067fe639d7 Describe upper limit based on itimerfix restriction 1997-08-14 07:44:57 +00:00
Andrey A. Chernov
a85a54896e Oops, fix logic for previous commit 1997-08-14 06:46:44 +00:00
Andrey A. Chernov
d1e224f2cc Remove wrong machine-dependent phrase about maximum microseconds
limit. Small cleanup.
1997-08-14 06:32:25 +00:00
Andrey A. Chernov
3b3d0d1b49 Break loop if error != EINTR occurse or it can take forever with
time_remaining unchanged
1997-08-14 06:23:48 +00:00
Andrey A. Chernov
2e2d038677 Note that default behaviour (restarting signals) is only for signal(3) 1997-08-13 18:40:57 +00:00
Andrey A. Chernov
71936d097e Handle syscalls error return slightly better 1997-08-13 18:22:41 +00:00
Andrey A. Chernov
3be4b5c3df Back out itimerfix hack since nanosleep1 fixed now
Handle syscalls error return slightly better
1997-08-13 18:13:17 +00:00
Andrey A. Chernov
f38ea584f5 Add unsigned char cast to all ctype calls 1997-08-13 13:11:53 +00:00
Andrey A. Chernov
fc0cc5ad9b Rearrange itimerfix loop doing it inside SIGALRM handling section 1997-08-12 19:54:31 +00:00
Andrey A. Chernov
b39d66c04a Solve itimerfix() problem completely by using loop in 100000000 secs chunks 1997-08-12 19:47:01 +00:00
Andrey A. Chernov
6d4ff45427 Reflect blocked SIGALRM changes 1997-08-12 19:28:07 +00:00
Andrey A. Chernov
8d7bf613b2 Back out my installation of SIGALRM handler even if it is blocked
and return to previous Peter's variant.
POSIX says that this place is implementation defined and old variant allows
application block SIGALRM and sleep and not be killed by external SIGALRMs.
BTW, GNU sleep f.e. sleeps forever in blocked SIGALRM :-)
1997-08-12 19:14:54 +00:00
Andrey A. Chernov
bc044b88dd Reflect -current implementations 1997-08-12 17:53:00 +00:00
Andrey A. Chernov
1ddf325cda 1) Make usleep() terminateable by alarm (or ualarm) as supposed
historically
2) Fix end of time loop condition: && -> ||
1997-08-12 17:17:53 +00:00
Andrey A. Chernov
fa23b4efb8 Change to reflect -current sleep implementation reality 1997-08-12 16:46:05 +00:00
Andrey A. Chernov
d23cc31d85 Make itimerfix hack better: return the time we can't sleep at once 1997-08-12 15:46:05 +00:00
Steve Price
312ecb009a Default size for FD_SETSIZE is 1024 not 256.
PR:		bin/4177
Submitted by:	Wolfgang Helbig <helbig@MX-BA.Stuttgart.De>
1997-08-11 01:31:30 +00:00
Joerg Wunsch
ac77b4810d Hack^H^H^H^Hworkaround for itimerfix(9) gratuitously limiting the
acceptable range for tv_sec to the magic number 100000000 (which at
least ought to be declared in a header file, and explained in the
non-existing man page, as well as in the existing man pages for
nanosleep(2) & Co.).

PR:		bin/4259
1997-08-10 12:16:13 +00:00
Joerg Wunsch
37486f035f Import strptime(3) into libc. We've got permission by Kevin Ruddy to
modify the original `no modifications' copyright message, and i've
included his mail into the source file.

The common localization functions between strptime(3) and strftime(3)
have been broken out into timelocal.[ch].
1997-08-09 15:43:59 +00:00
Joerg Wunsch
d76419833c Clean import of strptime(3) onto a vendor branch.
Submitted by:	Powerdog Industries <kevin.ruddy@powerdog.com>
1997-08-09 15:38:14 +00:00
Steve Price
febad2fcf4 Observe precedence set by Phillippe Charnier in adding an
rcsid.
1997-08-07 22:28:25 +00:00
Steve Price
d46c1a60d3 Remove #if(n)def BSD_4_4_LITE cruft and sccsid -> rcsid. 1997-08-07 15:33:50 +00:00
Andrey A. Chernov
9fb4ef6227 Remove collate_range_cmp, was left for temp. backward compatibility 1997-08-03 18:04:39 +00:00
John Polstra
f9e41842fc Fix a minor typo. It only affects the sparc version. 1997-07-26 03:43:14 +00:00
Peter da Silva
dc1f820ee5 Added bounds checking to the example after chasing down someone's
broken code where they'd copied the example basically verbatim and
blew an array. (engage brain before typing 'make')
1997-07-26 00:47:06 +00:00
Bruce Evans
d437803036 Add to CLEANFILES instead of setting it absolutely. Cleaning of *.S and
tags was broken.
1997-07-21 16:02:09 +00:00
Peter Wemm
925d069aa8 Make sleep() and usleep() "eat" any stray SIGALRM signals during the
lifetime of the call, just like the old implementation did.  Previously,
we were only eating them if the application did not call sleep()/usleep()
with SIGALRM masked.

Submitted by:	ache
1997-07-18 09:48:37 +00:00
Poul-Henning Kamp
e53211ce4d realpath() should break on looped symlinks.
PR:		3911
Reviewed by:	phk
Submitted by:	Shigio Yamaguchi <shigio@wafu.netgate.net>
1997-07-16 11:25:48 +00:00
Peter Wemm
65b3003d2d kill the undead 1997-07-13 14:26:00 +00:00
Bruce Evans
f3acd8dc3c Fixed quoting of backslash. 1997-07-13 07:28:06 +00:00
Peter Wemm
dd1d7d1fa0 Add a quick description of sysctlbyname() and link sysctl.3 to
sysctlbyname.3
1997-07-12 11:16:18 +00:00
Peter Wemm
16373facf6 Have sysctlbyname() take a const first arg (the ascii string) 1997-07-12 11:14:30 +00:00
Adam David
ccb277de1a execve of interpreter files
reword for grammar/clarity
1997-07-08 18:27:38 +00:00
Peter Wemm
e48f3cfbfc Rework previous commit.. I was confused by the number of diffs in the PR
and forgot what I was trying to do originally and accidently zapped
a feature. :-]  The problem is that we are converting a counted buffer in
a malloc pool into a null terminated C-style string.  I was calling realloc
originally to shrink the buffer to the desired size.  If realloc failed, we
still returned the valid buffer - the only thing wrong was it was a tad
too large.  The previous commit disabled this.

This commit now handles the three cases..
1: the buffer is exactly right for the null byte to terminate the
string (we don't call realloc).
2: it's got h.left = 0, so we must expand it to make room. If realloc
fails here, it's fatal.
3: if there's too much room, we realloc to shrink it - a failed realloc
is not fatal, we use the original buffer which is still valid.
1997-07-06 08:42:37 +00:00
Peter Wemm
3c55a3f243 Fix off-by-one error
PR: 3451
Submitted by: Tim Vanderhoek <ac199@hwcn.org>
1997-07-06 07:54:56 +00:00
Bruce Evans
362c392f0b This commit was generated by cvs2svn to compensate for changes in r27180,
which included commits to RCS files with non-trunk default branches.
1997-07-03 03:28:27 +00:00
Bruce Evans
5500fdcd4f Import Lite2's src/lib, except for non-i386 machine-dependent directories,
libc/db, libc/gen/crypt.* and libtelnet.  All affected files except 3
unimportant ones have already left the vendor branch.
1997-07-03 03:28:27 +00:00
Poul-Henning Kamp
25f5c3ba98 Have another go at the malloc-sysv initialization.
PR:		4002
Pointed out by:	bde
1997-07-02 19:33:23 +00:00
Poul-Henning Kamp
db7f90903d malloc_sysv used before initialized, reported in PR4002 by
Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>

Various cleanup from Keith Bostic

Reinstate calloc() as a separate funtion, in its own source/object file.
leave the manpage integrated with malloc.3 and friends.  Too many things
were broken in this respect.

PR:		4002
Reviewed by:	phk
Submitted by:	Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>
Submitted by:	Keith Bostic <bostic@bostic.com>
1997-07-01 18:39:38 +00:00
Jordan K. Hubbard
5e17038f01 Add 64 bit int support to scanf()
PR:		2080
Submitted by:	David Dawes <dawes@rf900.physics.usyd.edu.au>
1997-07-01 17:46:39 +00:00
Jordan K. Hubbard
51e6986086 _err() -> err(). 1997-06-29 00:33:17 +00:00
Peter Wemm
1e7aa4e938 replace the OpenBSD fd_set sizing code with something more efficient.
Only call malloc() if the fd is too big for the compiled in fd_set size,
and don't use calloc either.  This should reduce the impact of conflicts
with private malloc implementations etc.  When using the fd_set on the
stack, only zero what is needed rather than all 1024 bits like FD_ZERO did.
1997-06-28 04:19:52 +00:00
Peter Wemm
d2346017f0 Dynamically size fd_set in select rather than fail if too many files
are open.
Obtained from: OpenBSD; by deraadt and dm
1997-06-27 13:00:51 +00:00
Peter Wemm
fa0913efdb compensate for res_send <-> __res_send changes 1997-06-27 08:35:13 +00:00
Peter Wemm
6c5aff806e Merge in bind-4.9.6 resolver changes. Note that they resolve the
overflow problem differently.
1997-06-27 08:22:03 +00:00
Mike Smith
4ce2d5b5b5 Add stringlist functions from NetBSD. (required for the new ftp(1)
Obtained from:	NetBSD
1997-06-25 08:05:03 +00:00
John Hay
127feebec1 Add tickadj to struct clockinfo, like NetBSD and OpenBSD. 1997-06-24 18:22:44 +00:00
Steve Price
681e5e7a09 Show the real revision date and not the date that this
manpage is being viewed.
1997-06-23 04:03:49 +00:00
Poul-Henning Kamp
e3553c0365 Integrate calloc with the rest of the gang.
Various portability and stylistic cleanups.
Kill MALLOC_STATS & the 'D' option.
Fix the 'V' option.
Major overhaul of the man-page.
You milage should not vary.

Reviewed by:	Keith Bostic <bostic@bostic.com>
Submitted by:	Keith Bostic <bostic@bostic.com>
1997-06-22 17:54:27 +00:00
Bill Paul
b1d8279802 Hm... wonder how long this has been here.
The logic in get_myaddress() is broken: it always returns the loopback
address due to the following rule:

                if ((ifreq.ifr_flags & IFF_UP) &&
                    ifr->ifr_addr.sa_family == AF_INET &&
                    (loopback == 1 && (ifreq.ifr_flags & IFF_LOOPBACK))) {

The idea is that we want to select the interface address only if it's
up and it's in the AF_INET family. If it turns uout we don't have
such an interface available, we make a second pass through the loop,
this time settling for the loopback interface. But the logic inadvertently
locks out all cases when loopback == 0, so nothing is ever selected until
the second pass (when loopback == 1).

This is changed to:

                if (((ifreq.ifr_flags & IFF_UP) &&
                    ifr->ifr_addr.sa_family == AF_INET) ||
                    (loopback == 1 && (ifreq.ifr_flags & IFF_LOOPBACK))) {

which I think does the right thing.

This is yet another bogon I discovered during NIS+ testing; I need
get_myaddress() to work correctly so that the callback code in the
client library will work.
1997-06-20 17:54:11 +00:00
Philippe Charnier
577b61c645 Typo. 1997-06-18 06:26:13 +00:00
Bill Paul
c88fdb1d1d Remember to zero sockaddr_in struct before calling uaddr_to_sockaddr() to
populate it. Not doing this can result in a garbage sockaddr_in, which
will cause connect() to block inside clnttcp_create().
1997-06-15 21:03:32 +00:00
Andrey A. Chernov
f2305d469b srandomdev: use stack junk value in the fallback code too 1997-06-15 18:23:19 +00:00
Andrey A. Chernov
e9c3c2bc0b Change u_char which require special include to unsigned char 1997-06-14 01:28:59 +00:00
Andrey A. Chernov
83a03b388f Add arc4random() functions from OpenBSD. They are almost same as our
srandomdev(), but can be used inside libraries. random() can't be used
inside libraries because it breaks its possible predictable sequence.
arc4random() is true random as designed, so its usage is library-safe.
Obtained from: OpenBSD
1997-06-14 01:15:41 +00:00
Andrey A. Chernov
96c31b2618 Instead of copying fallback code over and over in each program,
implement (better) falback code inside srandomdev() itself.
Change return type from int to void (binary compatibility surprisely
achieved). Userland code will be changed soon.
1997-06-14 00:14:29 +00:00
Andrey A. Chernov
a14d48e67b Add MAXHOSTNAMELEN check
Obtained from: OpenBSD
1997-06-13 19:21:54 +00:00
Bill Paul
f7cf1c1d14 getnetid() crashes if no /etc/netid file is present (it tries to fclose()
a FILE * handle that wasn't really open).
1997-06-12 18:42:43 +00:00
Poul-Henning Kamp
7c5232c617 Add yet an option, this time on how to deal with malloc(0) and realloc(ptr.0)
Prompted by:	X11 & XFree86
1997-06-12 12:45:45 +00:00
Andrey A. Chernov
e728d480d2 Style optimization in newly added POSIX range []] conformance, redo
'for' loop as do...while and remove variable unneded now
1997-06-07 01:33:10 +00:00
Andrey A. Chernov
05a068e60e Add missing FNM_PERIOD check for '[' range
Don't treat !^ as first characters in the range, just as negate sign
[/] never match if FNM_PATHNAME
1997-06-06 22:33:28 +00:00
Andrey A. Chernov
e2dbbd9eea 1) Now conforms POSIX.2 2.8.3.2 requirements about []] pattern
2) Treat unclosed [ range in pattern as regular characters (bash style)
1997-06-06 21:48:55 +00:00
John Birrell
1a3a296d21 Fix mutex initialization.
Malloc cannot use pthread_mutex_init() to initialize a mutex because
the mutex initialization process does a malloc!

libc_r internals skip the malloc and assign an initializer to a static
structure and point the opaque type (pthread_mutex_t in this case) to
that structure. This is done on the assumption that the mutex will never
be destroyed. This style of initialization is only valid inside libc_r
because the structure that is assigned is opaque to the user.

This fix allows a simple program to get to main() again. 8-)
1997-06-04 12:55:49 +00:00
Peter Wemm
be159dcaf7 Re-activate the nanosleep style using code, but with the signal handling
semantics of the old sleep for compatability with a few decades of expected
side effects.  Apache breaks if we just use nanosleep() for some reason,
here we use a new signanosleep() syscall which is kinda like a hybrid of
sigsuspend and nanosleep..

Reviewed by:  ache (and tested on his apache that was failing when
                    sleep used plain nanosleep)
1997-06-02 16:30:22 +00:00
Julian Elischer
50dab48a5b Submitted by: Whistle Communications (archie Cobbs)
These changes add the ability to specify that a UFS file/directory
cannot be unlinked. This is basically a scaled back version
of the IMMUTABLE flag. The reason is to allow an administrator
to create a directory hierarchy that a group of users
can arbitrarily add/delete files from, but that the hierarchy
itself is safe from removal by them.
If the NOUNLINK definition is set to 0
then this results in no change to what happens normally.
(and results in identical binary (in the kernel)).
It can be proven that if this bit is never set by the admin,
no new behaviour is introduced..
Several "good idea" comments from reviewers plus one grumble
about creeping featurism.

This code is in production in 2.2 based systems
1997-06-02 06:24:52 +00:00
Peter Wemm
5c4722ca2f Add xref to signanosleep(2) 1997-06-01 10:34:39 +00:00
Peter Wemm
34147a3e8f Doc signanosleep, add to links 1997-06-01 09:47:06 +00:00
Peter Wemm
0913e7ce8b Update the sleep(3)/usleep(3) code to use signanosleep(2) if compiled with
-DUSE_NANOSLEEP.  Also, seperate the code for _THREAD_SAFE so that it uses
the simpler threaded nanosleep() call in libc_r..  We don't go to the same
extremes for emulating traditional sleep semantics (ie: eating any SIGALRM
that might happen) which things like apache seem to depend on.
1997-06-01 09:27:03 +00:00
Peter Wemm
63f35faf52 Generate signanosleep(2) syscall wrapper 1997-06-01 09:20:30 +00:00
Poul-Henning Kamp
f3877f2e4e sysctlbyname allows acces to sysctl variables by name.
The manpage has been sent to linquistic decontamination and will arrive
when released from the quarantine

Reviewed by:	peter
1997-05-30 20:53:13 +00:00
Poul-Henning Kamp
7e2a8bde3e Malloc flag X makes malloc behave like the canonical xmalloc() wrapper.
Untested support for Solaris from John-Mark Gurney

Reviewed by:	phk
Submitted by:	(partially) John-Mark Gurney <gurney_j@resnet.uoregon.edu>
1997-05-30 20:39:32 +00:00
Bill Paul
973ddb8378 Fix other small things that got lost in the merge:
- bde's change to includes section in getrpcent.3
- Lost comment in svc_run.c (the code here was actually the same since
  I had fixed the 'fds + 1' bug in my stuff at home before mailing
  Peter about it, but I didn't notce that he'd made a change to the
  comment right above the changed line).

Also pointed out by the ever vigilant: bde
1997-05-28 16:38:35 +00:00
Bill Paul
68eccc934b Restore Id.
Pointed out by: bde
1997-05-28 16:29:12 +00:00
Bill Paul
ad133ed648 Resolve conflicts.
This concludes tonight's entertainment. Once I'm sure I haven't destroyed
the world with all these changes, I'll import the utilities. Everything
should continue to work as before. If it doesn't let me know.

Special thanks to Mark Murray for running a test 'make world' for me to
shake out the bugs, which, hopefully, I have fixed.

(And there was much rejoicing.)
1997-05-28 05:05:31 +00:00
Bill Paul
9f3e964560 This commit was generated by cvs2svn to compensate for changes in r26219,
which included commits to RCS files with non-trunk default branches.
1997-05-28 05:00:11 +00:00
Bill Paul
e8636dfd57 Now the biggest step: import the changes to the main RPC code.
Note: you'll need to rinstalkl all your includes before compiling libc
the next time you update your sources in order for all this to work.

Reviewed by:	Mark Murray
1997-05-28 05:00:11 +00:00
Bill Paul
58041b5396 Resolve conflicts. 1997-05-28 04:57:39 +00:00
Bill Paul
7d0a5a3919 Now update the XDR library.
Reviewed by: Mark Murray
1997-05-28 04:55:37 +00:00
Bill Paul
b70dbc82a1 This commit was generated by cvs2svn to compensate for changes in r26216,
which included commits to RCS files with non-trunk default branches.
1997-05-28 04:55:37 +00:00
Satoshi Asami
6ded366aaa Use ${DESTDIR} correctly in front of absolute paths. 1997-05-23 08:24:00 +00:00
Eivind Eklund
6ad98044a1 it's'' -> its'' where appropriate and typo fixes in time2posix.3.
Closes PR docs/3612.

Submitted by:	Josh Gilliam <soil@quick.net>
1997-05-19 16:33:27 +00:00
Peter Wemm
304e0890fc Update the nanosleep versions to set a SIGALRM handler while sleeping.
This appears to appease Apache, although depending on having sleep(3)
changing the SIGALRM handler is a bit bogus.
1997-05-18 10:57:49 +00:00
Peter Wemm
1823941071 if nanosleep returns too early, loop. usleep() does not have a return
value, it appears as though the semantics of usleep are that it doesn't
return early.  (only in the nanosleep code - the setitimer code does this
already)
1997-05-17 15:42:58 +00:00
Peter Wemm
7bf1f2c9fa round-up non-zero nanoseconds in #ifdef'ed code. 1997-05-17 15:41:08 +00:00
Peter Wemm
fa0f63238b Allow conditional use (add -DUSE_NANOSLEEP) to CFLAGS of nanosleep() for
the backend of sleep(3) and usleep(3).  It's off by default until the
problem is fixed.
1997-05-17 11:40:58 +00:00
Andrey A. Chernov
e3c1328e9f Temporarily restore old (itimer) sleep variant because new one
(nanosleep) breaks Apache httpd badly: his childs died quickly after
number of requests (SIGPIPE). To reproduce this bug start
gdb /usr/local/sbin/httpd
run -X

and make some bunch of concurent requests (load the server pages
from 3 different places f.e.)
After short time httpd dies via SIGPIPE. It never dies with old sleep.c

In real life it looks like lots of broken images on the pages or missing
pages. Lynx says about Network read error, etc.
It seems something wrong in nanosleep signal handling.
1997-05-17 08:32:42 +00:00
Andrey A. Chernov
cbc9cbfb58 Completely remove #ifdefed out 8859-1 extension, I found it break
POSIX, C locale definition, see LC_CTYPE pre-defined table there
1997-05-14 00:11:02 +00:00
Andrey A. Chernov
cd641c8853 #ifdef out C locale extension to 8859-1 encoding, it now stays to ASCII
back as designed in *BSD

Also it not violates current standards but

1) No other Unixes have this feature

2) It broke Kerberos5 (isprint) and God knows what else
(not all vendors will agree to treat FreeBSD as special case for support
since (1))

2) Give false localization sense (programs mimic to be 8859-1
localized) which prevents true localization.
1997-05-13 11:19:26 +00:00
Peter Wemm
cbe0c2e4af Add clock_* and nanosleep manpages and links. 1997-05-12 12:18:14 +00:00
Peter Wemm
5995c83796 manpage for nanosleep(2)
Obtained from: NetBSD  (I think jtc@netbsd.org wrote it)
1997-05-12 12:15:35 +00:00
Peter Wemm
6bc1aaa0d8 Man pages for clock_{get/set}time() and clock_getres().
Obtained from: kstailey@openbsd.org via OpenBSD sources
1997-05-12 12:13:10 +00:00
Peter Wemm
511d7b9c07 Use nanosleep() in all cases, not just in the reentrant libc (_THREAD_SAFE)
version.
1997-05-12 10:04:57 +00:00
Peter Wemm
85c2765219 Create the clock_settime(), clock_gettime(), clock_getres() and nanosleep()
syscall functions.
1997-05-12 09:59:25 +00:00
David Nugent
210793f753 Add #include <sys/types.h> in synopsis, now required for libutil.h. 1997-05-11 08:50:33 +00:00
Andrey A. Chernov
94658e740e Plug even more failure memory leaks 1997-05-10 04:40:40 +00:00
Andrey A. Chernov
d0673936fd Cleanup
Plug failure memory leaks
Use issetugid now
PR: 3492
1997-05-10 04:28:17 +00:00
Eivind Eklund
f756433e8b Back out all of yesterdays include file changes. 1997-05-07 20:01:10 +00:00
Doug Rabson
e8ec170c35 Add syscalls for kernel linker. 1997-05-07 18:12:14 +00:00
Eivind Eklund
48ea0bec18 Make a lot of include-files self-contained. I excluded the patches changing
int's to gid_t and uid_t - should I commit these, too?

Closes PR misc/2625.

Submitted by:	Julian Assange <proff@iq.org>
1997-05-07 02:27:18 +00:00