1
0
mirror of https://github.com/openbsd/src.git synced 2024-12-21 23:18:00 -08:00

Stop using MAXBSIZE to eliminate sys/param.h including (which injects a

ton of namespace intrusion).  Create local sizes, and refactor some code
along the way.
ok millert
This commit is contained in:
deraadt 2021-11-28 19:28:41 +00:00
parent 1e13aedbe7
commit 1a0afcde32
12 changed files with 71 additions and 52 deletions

View File

@ -1,4 +1,4 @@
/* $OpenBSD: utils.c,v 1.49 2021/10/24 21:24:21 deraadt Exp $ */
/* $OpenBSD: utils.c,v 1.50 2021/11/28 19:28:41 deraadt Exp $ */
/* $NetBSD: utils.c,v 1.6 1997/02/26 14:40:51 cgd Exp $ */
/*-
@ -30,7 +30,7 @@
* SUCH DAMAGE.
*/
#include <sys/param.h> /* MAXBSIZE */
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <sys/time.h>
@ -47,6 +47,8 @@
#include "extern.h"
#define _MAXBSIZE (64 * 1024)
int copy_overwrite(void);
int
@ -56,17 +58,18 @@ copy_file(FTSENT *entp, int exists)
static char *zeroes;
struct stat to_stat, *fs;
int from_fd, rcount, rval, to_fd, wcount;
const size_t buflen = _MAXBSIZE;
#ifdef VM_AND_BUFFER_CACHE_SYNCHRONIZED
char *p;
#endif
if (!buf) {
buf = malloc(MAXBSIZE);
buf = malloc(buflen);
if (!buf)
err(1, "malloc");
}
if (!zeroes) {
zeroes = calloc(1, MAXBSIZE);
zeroes = calloc(1, buflen);
if (!zeroes)
err(1, "calloc");
}
@ -141,7 +144,7 @@ copy_file(FTSENT *entp, int exists)
struct stat tosb;
if (!fstat(to_fd, &tosb) && S_ISREG(tosb.st_mode))
skipholes = 1;
while ((rcount = read(from_fd, buf, MAXBSIZE)) > 0) {
while ((rcount = read(from_fd, buf, buflen)) > 0) {
if (skipholes && memcmp(buf, zeroes, rcount) == 0)
wcount = lseek(to_fd, rcount, SEEK_CUR) == -1 ? -1 : rcount;
else

View File

@ -1,4 +1,4 @@
/* $OpenBSD: cp.c,v 1.9 2021/10/24 21:24:21 deraadt Exp $ */
/* $OpenBSD: cp.c,v 1.10 2021/11/28 19:28:41 deraadt Exp $ */
/* $NetBSD: cp.c,v 1.14 1995/09/07 06:14:51 jtc Exp $ */
/*
@ -386,7 +386,7 @@ copy(char *argv[], enum op type, int fts_options)
}
/* $OpenBSD: cp.c,v 1.9 2021/10/24 21:24:21 deraadt Exp $ */
/* $OpenBSD: cp.c,v 1.10 2021/11/28 19:28:41 deraadt Exp $ */
/* $NetBSD: utils.c,v 1.6 1997/02/26 14:40:51 cgd Exp $ */
/*-
@ -418,7 +418,7 @@ copy(char *argv[], enum op type, int fts_options)
* SUCH DAMAGE.
*/
#include <sys/param.h> /* MAXBSIZE */
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <sys/time.h>
@ -433,6 +433,8 @@ copy(char *argv[], enum op type, int fts_options)
#include <unistd.h>
#include <limits.h>
#define _MAXBSIZE (64 * 1024)
static int
copy_file(FTSENT *entp, int dne)
{
@ -440,17 +442,18 @@ copy_file(FTSENT *entp, int dne)
static char *zeroes;
struct stat *fs;
int ch, checkch, from_fd, rcount, rval, to_fd, wcount;
const size_t buflen = _MAXBSIZE;
#ifdef VM_AND_BUFFER_CACHE_SYNCHRONIZED
char *p;
#endif
if (!buf) {
buf = malloc(MAXBSIZE);
buf = malloc(buflen);
if (!buf)
err(1, "malloc");
}
if (!zeroes) {
zeroes = calloc(1, MAXBSIZE);
zeroes = calloc(1, buflen);
if (!zeroes)
err(1, "calloc");
}
@ -532,7 +535,7 @@ copy_file(FTSENT *entp, int dne)
struct stat tosb;
if (!fstat(to_fd, &tosb) && S_ISREG(tosb.st_mode))
skipholes = 1;
while ((rcount = read(from_fd, buf, MAXBSIZE)) > 0) {
while ((rcount = read(from_fd, buf, buflen)) > 0) {
if (skipholes && memcmp(buf, zeroes, rcount) == 0)
wcount = lseek(to_fd, rcount, SEEK_CUR) == -1 ? -1 : rcount;
else

View File

@ -1,4 +1,4 @@
/* $OpenBSD: cdio.c,v 1.82 2021/10/24 21:24:16 deraadt Exp $ */
/* $OpenBSD: cdio.c,v 1.83 2021/11/28 19:28:41 deraadt Exp $ */
/* Copyright (c) 1995 Serge V. Vakulenko
* All rights reserved.
@ -52,7 +52,7 @@
* $FreeBSD: cdcontrol.c,v 1.13 1996/06/25 21:01:27 ache Exp $
*/
#include <sys/param.h> /* isset */
#include <sys/types.h>
#include <sys/cdio.h>
#include <sys/ioctl.h>
#include <sys/queue.h>
@ -526,7 +526,7 @@ run(int cmd, char *arg)
warnx("Can't determine media type");
return (0);
}
if (isset(mediacap, MMC_FEATURE_CDRW_WRITE) == 0 &&
if (cdio_isset(mediacap, MMC_FEATURE_CDRW_WRITE) == 0 &&
get_media_type() != MEDIATYPE_CDRW) {
warnx("The media doesn't support blanking");
return (0);
@ -669,7 +669,7 @@ tao(int argc, char **argv)
exit(1);
if (get_media_capabilities(mediacap, 1) == -1)
errx(1, "Can't determine media type");
if (isset(mediacap, MMC_FEATURE_CD_TAO) == 0)
if (cdio_isset(mediacap, MMC_FEATURE_CD_TAO) == 0)
errx(1, "The media can't be written in TAO mode");
get_disc_size(&availblk);

View File

@ -1,4 +1,4 @@
/* $OpenBSD: extern.h,v 1.16 2021/01/18 00:44:00 mortimer Exp $ */
/* $OpenBSD: extern.h,v 1.17 2021/11/28 19:28:42 deraadt Exp $ */
/*
* Copyright (c) 2002 Marc Espie.
*
@ -26,6 +26,9 @@
#include <sys/queue.h>
#define cdio_isset(a,i) ((a)[(i)>>3] & (1<<((i)&(NBBY-1))))
#define cdio_setbit(a,i) ((a)[(i)>>3] |= 1<<((i)&(NBBY-1)))
struct cd_toc_entry;
struct track_info {
off_t sz;

View File

@ -1,4 +1,4 @@
/* $OpenBSD: mmc.c,v 1.32 2020/09/01 17:20:02 krw Exp $ */
/* $OpenBSD: mmc.c,v 1.33 2021/11/28 19:28:42 deraadt Exp $ */
/*
* Copyright (c) 2006 Michael Coulter <mjc@openbsd.org>
*
@ -15,11 +15,10 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <sys/types.h>
#include <sys/limits.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/scsiio.h>
#include <sys/param.h> /* setbit, isset */
#include <scsi/cd.h>
#include <scsi/scsi_all.h>
#include <scsi/scsi_disk.h>
@ -274,7 +273,7 @@ get_media_capabilities(u_int8_t *cap, int rt)
"" );
}
}
setbit(cap, feature);
cdio_setbit(cap, feature);
}
return (0);
@ -288,7 +287,7 @@ set_speed(int wspeed)
memset(&scr, 0, sizeof(scr));
scr.cmd[0] = SET_CD_SPEED;
scr.cmd[1] = (isset(mediacap, MMC_FEATURE_CDRW_CAV)) != 0;
scr.cmd[1] = (cdio_isset(mediacap, MMC_FEATURE_CDRW_CAV)) != 0;
*(u_int16_t *)(scr.cmd + 2) = htobe16(DRIVE_SPEED_OPTIMAL);
*(u_int16_t *)(scr.cmd + 4) = htobe16(wspeed);

View File

@ -1,4 +1,4 @@
/* $OpenBSD: remote.c,v 1.33 2019/06/28 13:35:00 deraadt Exp $ */
/* $OpenBSD: remote.c,v 1.34 2021/11/28 19:28:42 deraadt Exp $ */
/*
* Copyright (c) 2006 Joris Vink <joris@openbsd.org>
*
@ -15,7 +15,7 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <sys/param.h> /* MAXBSIZE */
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
@ -29,6 +29,7 @@
#include "remote.h"
#define MINIMUM(a, b) (((a) < (b)) ? (a) : (b))
#define _MAXBSIZE (64 * 1024)
struct cvs_resp *
cvs_remote_get_response_info(const char *response)
@ -128,7 +129,7 @@ void
cvs_remote_receive_file(int fd, size_t len)
{
FILE *in;
char data[MAXBSIZE];
char data[_MAXBSIZE];
size_t nread, nleft, toread;
if (cvs_server_active)
@ -139,7 +140,7 @@ cvs_remote_receive_file(int fd, size_t len)
nleft = len;
while (nleft > 0) {
toread = MINIMUM(nleft, MAXBSIZE);
toread = MINIMUM(nleft, sizeof data);
nread = fread(data, sizeof(char), toread, in);
if (nread == 0)
@ -165,7 +166,7 @@ cvs_remote_send_file(const char *path, int _fd)
size_t ret, rw;
off_t total;
struct stat st;
char buf[18], data[MAXBSIZE];
char buf[18], data[_MAXBSIZE];
if (cvs_server_active)
out = stdout;
@ -194,7 +195,7 @@ cvs_remote_send_file(const char *path, int _fd)
fatal("cvs_remote_send_file: fdopen %s", strerror(errno));
total = 0;
while ((ret = fread(data, sizeof(char), MAXBSIZE, in)) != 0) {
while ((ret = fread(data, sizeof(char), sizeof data, in)) != 0) {
rw = fwrite(data, sizeof(char), ret, out);
if (rw != ret)
fatal("failed to write %zu bytes", ret);

View File

@ -1,4 +1,4 @@
/* $OpenBSD: rcs.c,v 1.88 2019/01/09 17:57:05 joris Exp $ */
/* $OpenBSD: rcs.c,v 1.89 2021/11/28 19:28:42 deraadt Exp $ */
/*
* Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@ -24,7 +24,7 @@
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/param.h> /* MAXBSIZE */
#include <sys/types.h>
#include <sys/stat.h>
#include <ctype.h>
@ -44,6 +44,8 @@
#include "rcsutil.h"
#include "xmalloc.h"
#define _MAXBSIZE (64 * 1024)
#define MINIMUM(a, b) (((a) < (b)) ? (a) : (b))
/* invalid characters in RCS states */
@ -395,8 +397,8 @@ rcs_movefile(char *from, char *to, mode_t perm, u_int to_flags)
return (-1);
}
buf = xmalloc(MAXBSIZE);
while ((nread = fread(buf, sizeof(char), MAXBSIZE, src)) != 0) {
buf = xmalloc(_MAXBSIZE);
while ((nread = fread(buf, sizeof(char), _MAXBSIZE, src)) != 0) {
if (ferror(src)) {
warnx("failed to read `%s'", from);
(void)unlink(to);

View File

@ -1,4 +1,4 @@
/* $OpenBSD: copy.c,v 1.2 2021/10/24 21:24:17 deraadt Exp $ */
/* $OpenBSD: copy.c,v 1.3 2021/11/28 19:28:42 deraadt Exp $ */
/*
* Copyright (c) 2021 Claudio Jeker <claudio@openbsd.org>
*
@ -15,7 +15,7 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <sys/param.h> /* MAXBSIZE */
#include <sys/types.h>
#include <err.h>
#include <fcntl.h>
@ -23,6 +23,8 @@
#include "extern.h"
#define _MAXBSIZE (64 * 1024)
/*
* Return true if all bytes in buffer are zero.
* A buffer of zero lenght is also considered a zero buffer.
@ -42,7 +44,7 @@ iszero(const void *b, size_t len)
static int
copy_internal(int fromfd, int tofd)
{
char buf[MAXBSIZE];
char buf[_MAXBSIZE];
ssize_t r, w;
while ((r = read(fromfd, buf, sizeof(buf))) > 0) {

View File

@ -1,4 +1,4 @@
/* $OpenBSD: split.c,v 1.22 2021/10/24 21:24:17 deraadt Exp $ */
/* $OpenBSD: split.c,v 1.23 2021/11/28 19:28:42 deraadt Exp $ */
/* $NetBSD: split.c,v 1.5 1995/08/31 22:22:05 jtc Exp $ */
/*
@ -30,7 +30,6 @@
* SUCH DAMAGE.
*/
#include <sys/param.h> /* MAXBSIZE */
#include <sys/types.h>
#include <ctype.h>
@ -43,13 +42,15 @@
#include <unistd.h>
#include <regex.h>
#define _MAXBSIZE (64 * 1024)
#define DEFLINE 1000 /* Default num lines per file. */
ssize_t bytecnt; /* Byte count to split on. */
long numlines; /* Line count to split on. */
int file_open; /* If a file open. */
int ifd = -1, ofd = -1; /* Input/output file descriptors. */
char bfr[MAXBSIZE]; /* I/O buffer. */
char bfr[_MAXBSIZE]; /* I/O buffer. */
char fname[PATH_MAX]; /* File name prefix. */
regex_t rgx;
int pflag;
@ -176,7 +177,7 @@ split1(void)
char *C;
for (bcnt = 0;;)
switch ((len = read(ifd, bfr, MAXBSIZE))) {
switch ((len = read(ifd, bfr, sizeof(bfr)))) {
case 0:
exit(0);
case -1:

View File

@ -1,4 +1,4 @@
/* $OpenBSD: wc.c,v 1.28 2021/11/16 23:34:24 cheloha Exp $ */
/* $OpenBSD: wc.c,v 1.29 2021/11/28 19:28:42 deraadt Exp $ */
/*
* Copyright (c) 1980, 1987, 1991, 1993
@ -29,7 +29,6 @@
* SUCH DAMAGE.
*/
#include <sys/param.h> /* MAXBSIZE */
#include <sys/stat.h>
#include <fcntl.h>
@ -43,6 +42,8 @@
#include <wchar.h>
#include <wctype.h>
#define _MAXBSIZE (64 * 1024)
int64_t tlinect, twordct, tcharct;
int doline, doword, dochar, humanchar, multibyte;
int rval;
@ -145,8 +146,8 @@ cnt(const char *path)
}
if (!doword && !multibyte) {
if (bufsz < MAXBSIZE &&
(buf = realloc(buf, MAXBSIZE)) == NULL)
if (bufsz < _MAXBSIZE &&
(buf = realloc(buf, _MAXBSIZE)) == NULL)
err(1, NULL);
/*
* Line counting is split out because it's a lot
@ -154,7 +155,7 @@ cnt(const char *path)
* the word count requires some logic.
*/
if (doline) {
while ((len = read(fd, buf, MAXBSIZE)) > 0) {
while ((len = read(fd, buf, _MAXBSIZE)) > 0) {
charct += len;
for (C = buf; len--; ++C)
if (*C == '\n')
@ -184,7 +185,7 @@ cnt(const char *path)
|| ifmt == S_IFDIR) {
charct = sbuf.st_size;
} else {
while ((len = read(fd, buf, MAXBSIZE)) > 0)
while ((len = read(fd, buf, _MAXBSIZE)) > 0)
charct += len;
if (len == -1) {
warn("%s", file);

View File

@ -1,4 +1,4 @@
/* $OpenBSD: xinstall.c,v 1.75 2021/10/24 21:24:18 deraadt Exp $ */
/* $OpenBSD: xinstall.c,v 1.76 2021/11/28 19:28:42 deraadt Exp $ */
/* $NetBSD: xinstall.c,v 1.9 1995/12/20 10:25:17 jonathan Exp $ */
/*
@ -30,7 +30,7 @@
* SUCH DAMAGE.
*/
#include <sys/param.h> /* MAXBSIZE */
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/mman.h>
#include <sys/stat.h>
@ -51,6 +51,8 @@
#include "pathnames.h"
#define _MAXBSIZE (64 * 1024)
#define MINIMUM(a, b) (((a) < (b)) ? (a) : (b))
#define DIRECTORY 0x01 /* Tell install it's a directory. */
@ -403,7 +405,7 @@ copy(int from_fd, char *from_name, int to_fd, char *to_name, off_t size,
{
ssize_t nr, nw;
int serrno;
char *p, buf[MAXBSIZE];
char *p, buf[_MAXBSIZE];
if (size == 0)
return;

View File

@ -1,4 +1,4 @@
/* $OpenBSD: pwd_mkdb.c,v 1.58 2021/10/24 21:24:19 deraadt Exp $ */
/* $OpenBSD: pwd_mkdb.c,v 1.59 2021/11/28 19:28:42 deraadt Exp $ */
/*-
* Copyright (c) 1991, 1993, 1994
@ -31,7 +31,7 @@
* SUCH DAMAGE.
*/
#include <sys/param.h> /* MAXBSIZE */
#include <sys/types.h>
#include <sys/stat.h>
#include <db.h>
@ -51,6 +51,8 @@
#include <util.h>
#define MINIMUM(a, b) (((a) < (b)) ? (a) : (b))
#define MAXIMUM(a, b) (((a) > (b)) ? (a) : (b))
#define _MAXBSIZE (64 * 1024)
#define INSECURE 1
#define SECURE 2
@ -106,7 +108,7 @@ main(int argc, char **argv)
uid_t olduid;
gid_t shadow;
int ch, tfd, makeold, secureonly, flags, checkonly;
char *username, buf[MAX(PATH_MAX, LINE_MAX * 2)];
char *username, buf[MAXIMUM(PATH_MAX, LINE_MAX * 2)];
flags = checkonly = makeold = secureonly = 0;
username = NULL;
@ -383,14 +385,14 @@ fmt: fatalc(EFTYPE, "%s", pname);
void
cp(char *from, char *to, mode_t mode)
{
static char buf[MAXBSIZE];
static char buf[_MAXBSIZE];
int from_fd, rcount, to_fd, wcount;
if ((from_fd = open(from, O_RDONLY)) == -1)
fatal("%s", from);
if ((to_fd = open(to, O_WRONLY|O_CREAT|O_EXCL, mode)) == -1)
fatal("%s", to);
while ((rcount = read(from_fd, buf, MAXBSIZE)) > 0) {
while ((rcount = read(from_fd, buf, sizeof buf)) > 0) {
wcount = write(to_fd, buf, rcount);
if (rcount != wcount || wcount == -1)
fatal("%s to %s", from, to);