CVS commit: src/usr.bin/dc

2018-02-06 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Feb  6 17:58:19 UTC 2018

Modified Files:
src/usr.bin/dc: bcode.c inout.c

Log Message:
Adjust to OpenSSL 1.1


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/dc/bcode.c src/usr.bin/dc/inout.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/dc/bcode.c
diff -u src/usr.bin/dc/bcode.c:1.2 src/usr.bin/dc/bcode.c:1.3
--- src/usr.bin/dc/bcode.c:1.2	Mon Apr 10 12:37:48 2017
+++ src/usr.bin/dc/bcode.c	Tue Feb  6 12:58:19 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: bcode.c,v 1.2 2017/04/10 16:37:48 christos Exp $	*/
+/*	$NetBSD: bcode.c,v 1.3 2018/02/06 17:58:19 christos Exp $	*/
 /*	$OpenBSD: bcode.c,v 1.51 2017/02/26 11:29:55 otto Exp $	*/
 
 /*
@@ -17,7 +17,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 #include 
-__RCSID("$NetBSD: bcode.c,v 1.2 2017/04/10 16:37:48 christos Exp $");
+__RCSID("$NetBSD: bcode.c,v 1.3 2018/02/06 17:58:19 christos Exp $");
 
 #include 
 #include 
@@ -32,6 +32,7 @@ __RCSID("$NetBSD: bcode.c,v 1.2 2017/04/
 
 #define MAX_ARRAY_INDEX		2048
 #define READSTACK_SIZE		8
+#define	NO_NUMBER		(~0UL)
 
 #define NO_ELSE			-2	/* -1 is EOF */
 #define REG_ARRAY_SIZE_SMALL	(UCHAR_MAX + 1)
@@ -590,7 +591,7 @@ set_scale(void)
 			warnx("scale must be a nonnegative number");
 		else {
 			scale = get_ulong(n);
-			if (scale != BN_MASK2 && scale <= UINT_MAX)
+			if (scale != NO_NUMBER && scale <= UINT_MAX)
 bmachine.scale = (u_int)scale;
 			else
 warnx("scale too large");
@@ -618,7 +619,7 @@ set_obase(void)
 	n = pop_number();
 	if (n != NULL) {
 		base = get_ulong(n);
-		if (base != BN_MASK2 && base > 1 && base <= UINT_MAX)
+		if (base != NO_NUMBER && base > 1 && base <= UINT_MAX)
 			bmachine.obase = (u_int)base;
 		else
 			warnx("output base must be a number greater than 1");
@@ -645,7 +646,7 @@ set_ibase(void)
 	n = pop_number();
 	if (n != NULL) {
 		base = get_ulong(n);
-		if (base != BN_MASK2 && 2 <= base && base <= 16)
+		if (base != NO_NUMBER && 2 <= base && base <= 16)
 			bmachine.ibase = (u_int)base;
 		else
 			warnx("input base must be a number between 2 and 16 "
@@ -884,7 +885,7 @@ load_array(void)
 		idx = get_ulong(inumber);
 		if (BN_is_negative(inumber->number))
 			warnx("negative idx");
-		else if (idx == BN_MASK2 || idx > MAX_ARRAY_INDEX)
+		else if (idx == NO_NUMBER || idx > MAX_ARRAY_INDEX)
 			warnx("idx too big");
 		else {
 			stack = [reg];
@@ -924,7 +925,7 @@ store_array(void)
 		if (BN_is_negative(inumber->number)) {
 			warnx("negative idx");
 			stack_free_value(value);
-		} else if (idx == BN_MASK2 || idx > MAX_ARRAY_INDEX) {
+		} else if (idx == NO_NUMBER || idx > MAX_ARRAY_INDEX) {
 			warnx("idx too big");
 			stack_free_value(value);
 		} else {
@@ -1205,7 +1206,7 @@ bexp(void)
 		b = BN_get_word(p->number);
 		m = max(a->scale, bmachine.scale);
 		rscale = a->scale * (u_int)b;
-		if (rscale > m || (a->scale > 0 && (b == BN_MASK2 ||
+		if (rscale > m || (a->scale > 0 && (b == NO_NUMBER ||
 		b > UINT_MAX)))
 			rscale = m;
 	}
@@ -1566,7 +1567,7 @@ quitN(void)
 		return;
 	i = get_ulong(n);
 	free_number(n);
-	if (i == BN_MASK2 || i == 0)
+	if (i == NO_NUMBER || i == 0)
 		warnx("Q command requires a number >= 1");
 	else if (bmachine.readsp < i)
 		warnx("Q command argument exceeded string execution depth");
@@ -1588,7 +1589,7 @@ skipN(void)
 	if (n == NULL)
 		return;
 	i = get_ulong(n);
-	if (i == BN_MASK2)
+	if (i == NO_NUMBER)
 		warnx("J command requires a number >= 0");
 	else if (i > 0 && bmachine.readsp < i)
 		warnx("J command argument exceeded string execution depth");
Index: src/usr.bin/dc/inout.c
diff -u src/usr.bin/dc/inout.c:1.2 src/usr.bin/dc/inout.c:1.3
--- src/usr.bin/dc/inout.c:1.2	Mon Apr 10 12:37:48 2017
+++ src/usr.bin/dc/inout.c	Tue Feb  6 12:58:19 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: inout.c,v 1.2 2017/04/10 16:37:48 christos Exp $	*/
+/*	$NetBSD: inout.c,v 1.3 2018/02/06 17:58:19 christos Exp $	*/
 /*	$OpenBSD: inout.c,v 1.20 2017/02/26 11:29:55 otto Exp $	*/
 
 /*
@@ -17,7 +17,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 #include 
-__RCSID("$NetBSD: inout.c,v 1.2 2017/04/10 16:37:48 christos Exp $");
+__RCSID("$NetBSD: inout.c,v 1.3 2018/02/06 17:58:19 christos Exp $");
 
 #include 
 #include 
@@ -331,19 +331,21 @@ printnumber(FILE *f, const struct number
 	stack_clear();
 	if (b->scale > 0) {
 		struct number	*num_base;
-		BIGNUM		mult, stop;
+		BIGNUM		*mult, *stop;
 
 		putcharwrap(f, '.');
 		num_base = new_number();
 		bn_check(BN_set_word(num_base->number, base));
-		BN_init();
-		bn_check(BN_one());
-		BN_init();
-		bn_check(BN_one());
-		scale_number(, (int)b->scale);
+		mult = BN_new();
+		stop = BN_new();
+		if (mult == NULL || stop == NULL)
+			err(1, NULL);
+		bn_check(BN_one(mult));
+		bn_check(BN_one(stop));
+		scale_number(stop, (int)b->scale);
 
 		i = 0;
-		while 

CVS commit: src/usr.bin/dc

2017-04-10 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Apr 10 16:37:49 UTC 2017

Modified Files:
src/usr.bin/dc: Makefile bcode.c dc.1 dc.c inout.c main.c mem.c stack.c
src/usr.bin/dc/USD.doc: Makefile
Added Files:
src/usr.bin/dc: misc.c

Log Message:
build fixes.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 src/usr.bin/dc/Makefile src/usr.bin/dc/bcode.c \
src/usr.bin/dc/dc.1 src/usr.bin/dc/dc.c src/usr.bin/dc/inout.c \
src/usr.bin/dc/main.c src/usr.bin/dc/mem.c src/usr.bin/dc/stack.c
cvs rdiff -u -r0 -r1.1 src/usr.bin/dc/misc.c
cvs rdiff -u -r1.1.1.1 -r1.2 src/usr.bin/dc/USD.doc/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/dc/Makefile
diff -u src/usr.bin/dc/Makefile:1.1.1.1 src/usr.bin/dc/Makefile:1.2
--- src/usr.bin/dc/Makefile:1.1.1.1	Mon Apr 10 12:34:18 2017
+++ src/usr.bin/dc/Makefile	Mon Apr 10 12:37:48 2017
@@ -1,9 +1,25 @@
-#	$OpenBSD: Makefile,v 1.3 2015/10/10 19:28:54 deraadt Exp $
+#	$NetBSD: Makefile,v 1.2 2017/04/10 16:37:48 christos Exp $
+
+.include 
 
 PROG=	dc
 SRCS=	main.c dc.c bcode.c inout.c mem.c stack.c
-COPTS+= -Wall
+
+.if ${MKCRYPTO:Uno} == "yes"
+WARNS=6
 LDADD=	-lcrypto
 DPADD=	${LIBCRYPTO}
+.else
+OPENSSL=${NETBSDSRCDIR}/crypto/external/bsd/openssl/dist
+.PATH: ${OPENSSL}/crypto/bn
+CPPFLAGS+=-I${OPENSSL} -I${OPENSSL}/crypto
+SRCS+= bn_lib.c bn_add.c bn_mul.c bn_div.c bn_asm.c bn_word.c bn_shift.c
+SRCS+= bn_ctx.c bn_exp.c bn_mod.c bn_sqr.c bn_mont.c bn_recp.c bn_gcd.c
+SRCS+= misc.c
+COPTS.bn_lib.c += -Wno-cast-qual
+.endif
+
+SUBDIR+=USD.doc
 
 .include 
+.include 
Index: src/usr.bin/dc/bcode.c
diff -u src/usr.bin/dc/bcode.c:1.1.1.1 src/usr.bin/dc/bcode.c:1.2
--- src/usr.bin/dc/bcode.c:1.1.1.1	Mon Apr 10 12:34:18 2017
+++ src/usr.bin/dc/bcode.c	Mon Apr 10 12:37:48 2017
@@ -1,3 +1,4 @@
+/*	$NetBSD: bcode.c,v 1.2 2017/04/10 16:37:48 christos Exp $	*/
 /*	$OpenBSD: bcode.c,v 1.51 2017/02/26 11:29:55 otto Exp $	*/
 
 /*
@@ -15,6 +16,8 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
+#include 
+__RCSID("$NetBSD: bcode.c,v 1.2 2017/04/10 16:37:48 christos Exp $");
 
 #include 
 #include 
@@ -227,7 +230,7 @@ sighandler(int ignored)
 void
 init_bmachine(bool extended_registers)
 {
-	int i;
+	size_t i;
 
 	bmachine.extended_regs = extended_registers;
 	bmachine.reg_array_size = bmachine.extended_regs ?
@@ -342,12 +345,12 @@ static unsigned long factors[] = {
 void
 scale_number(BIGNUM *n, int s)
 {
-	int abs_scale;
+	size_t abs_scale;
 
 	if (s == 0)
 		return;
 
-	abs_scale = s > 0 ? s : -s;
+	abs_scale = (size_t)(s > 0 ? s : -s);
 
 	if (abs_scale < sizeof(factors)/sizeof(factors[0])) {
 		if (s > 0)
@@ -415,7 +418,7 @@ split_number(const struct number *n, BIG
 void
 normalize(struct number *n, u_int s)
 {
-	scale_number(n->number, s - n->scale);
+	scale_number(n->number, (int)(s - n->scale));
 	n->scale = s;
 }
 
@@ -785,7 +788,7 @@ readreg(void)
 		} else
 			idx = (ch1 << 8) + ch2 + UCHAR_MAX + 1;
 	}
-	if (idx < 0 || idx >= bmachine.reg_array_size) {
+	if (idx < 0 || (size_t)idx >= bmachine.reg_array_size) {
 		warnx("internal error: reg num = %d", idx);
 		idx = -1;
 	}
@@ -1244,7 +1247,7 @@ bexp(void)
 			bn_check(BN_one(one));
 			ctx = BN_CTX_new();
 			bn_checkp(ctx);
-			scale_number(one, r->scale + rscale);
+			scale_number(one, (int)(r->scale + rscale));
 
 			if (BN_is_zero(r->number))
 warnx("divide by zero");
@@ -1683,11 +1686,10 @@ eval_string(char *p)
 	}
 	if (bmachine.readsp == bmachine.readstack_sz - 1) {
 		size_t newsz = bmachine.readstack_sz * 2;
-		struct source *stack;
-		stack = reallocarray(bmachine.readstack, newsz,
-		sizeof(struct source));
-		if (stack == NULL)
-			err(1, "recursion too deep");
+		struct source *stack = bmachine.readstack;
+		int ret = reallocarr(, newsz, sizeof(struct source));
+		if (ret)
+			errc(1, ret, "recursion too deep");
 		bmachine.readstack_sz = newsz;
 		bmachine.readstack = stack;
 	}
Index: src/usr.bin/dc/dc.1
diff -u src/usr.bin/dc/dc.1:1.1.1.1 src/usr.bin/dc/dc.1:1.2
--- src/usr.bin/dc/dc.1:1.1.1.1	Mon Apr 10 12:34:18 2017
+++ src/usr.bin/dc/dc.1	Mon Apr 10 12:37:48 2017
@@ -1,3 +1,4 @@
+.\"	$NetBSD: dc.1,v 1.2 2017/04/10 16:37:48 christos Exp $
 .\"	$OpenBSD: dc.1,v 1.30 2017/02/23 06:40:17 otto Exp $
 .\"
 .\" Copyright (C) Caldera International Inc.  2001-2002.
@@ -34,7 +35,7 @@
 .\"
 .\"	@(#)dc.1	8.1 (Berkeley) 6/6/93
 .\"
-.Dd $Mdocdate: February 23 2017 $
+.Dd February 23, 2017
 .Dt DC 1
 .Os
 .Sh NAME
Index: src/usr.bin/dc/dc.c
diff -u src/usr.bin/dc/dc.c:1.1.1.1 src/usr.bin/dc/dc.c:1.2
--- src/usr.bin/dc/dc.c:1.1.1.1	Mon Apr 10 12:34:18 2017
+++ src/usr.bin/dc/dc.c	Mon Apr 10 12:37:48 2017
@@ -1,3 +1,4 @@
+/*	$NetBSD: dc.c,v 1.2 2017/04/10 16:37:48 christos Exp $	*/
 /*	$OpenBSD: dc.c,v 1.18 2016/07/17 17:30:47 otto Exp $	*/
 
 /*