Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Aug 2020 15:20:07 +0000 (UTC)
From:      =?UTF-8?Q?Stefan_E=c3=9fer?= <se@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r363915 - in head/contrib/bc: . locales src
Message-ID:  <202008051520.075FK7ho026737@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: se
Date: Wed Aug  5 15:20:07 2020
New Revision: 363915
URL: https://svnweb.freebsd.org/changeset/base/363915

Log:
  Upgrade to version 3.1.5
  
  This version fixes some entries in the chinese message catalogs which could
  lead to program crashes when used.

Modified:
  head/contrib/bc/Makefile.in
  head/contrib/bc/NEWS.md
  head/contrib/bc/locales/zh_CN.GB18030.msg
  head/contrib/bc/locales/zh_CN.GB2312.msg
  head/contrib/bc/locales/zh_CN.GBK.msg
  head/contrib/bc/locales/zh_CN.UTF-8.msg
  head/contrib/bc/locales/zh_CN.eucCN.msg
  head/contrib/bc/src/program.c
  head/contrib/bc/src/vm.c
Directory Properties:
  head/contrib/bc/   (props changed)

Modified: head/contrib/bc/Makefile.in
==============================================================================
--- head/contrib/bc/Makefile.in	Wed Aug  5 14:42:45 2020	(r363914)
+++ head/contrib/bc/Makefile.in	Wed Aug  5 15:20:07 2020	(r363915)
@@ -29,7 +29,7 @@
 #
 .POSIX:
 
-VERSION = 3.1.4
+VERSION = 3.1.5
 
 SRC = %%SRC%%
 OBJ = %%OBJ%%

Modified: head/contrib/bc/NEWS.md
==============================================================================
--- head/contrib/bc/NEWS.md	Wed Aug  5 14:42:45 2020	(r363914)
+++ head/contrib/bc/NEWS.md	Wed Aug  5 15:20:07 2020	(r363915)
@@ -1,5 +1,13 @@
 # News
 
+## 3.1.5
+
+This is a production release that fixes the Chinese locales (which caused `bc`
+to crash) and a crash caused by `bc` executing code when it should not have been
+able to.
+
+***ALL USERS SHOULD UPGRADE.***
+
 ## 3.1.4
 
 This is a production release that fixes one bug, changes two behaviors, and

Modified: head/contrib/bc/locales/zh_CN.GB18030.msg
==============================================================================
Binary file (source and/or target). No diff available.

Modified: head/contrib/bc/locales/zh_CN.GB2312.msg
==============================================================================
Binary file (source and/or target). No diff available.

Modified: head/contrib/bc/locales/zh_CN.GBK.msg
==============================================================================
Binary file (source and/or target). No diff available.

Modified: head/contrib/bc/locales/zh_CN.UTF-8.msg
==============================================================================
Binary file (source and/or target). No diff available.

Modified: head/contrib/bc/locales/zh_CN.eucCN.msg
==============================================================================
Binary file (source and/or target). No diff available.

Modified: head/contrib/bc/src/program.c
==============================================================================
--- head/contrib/bc/src/program.c	Wed Aug  5 14:42:45 2020	(r363914)
+++ head/contrib/bc/src/program.c	Wed Aug  5 15:20:07 2020	(r363915)
@@ -1271,11 +1271,12 @@ static void bc_program_divmod(BcProgram *p) {
 	BcNum *n1, *n2;
 	size_t req;
 
+	bc_vec_expand(&p->results, p->results.len + 2);
+
+	// We don't need to update the pointer because
+	// the capacity is enough due to the line above.
 	res2 = bc_program_prepResult(p);
 	res = bc_program_prepResult(p);
-
-	// Update the pointer, just in case.
-	res2 = bc_vec_item_rev(&p->results, 1);
 
 	bc_program_binOpPrep(p, &opd1, &n1, &opd2, &n2, 2);
 

Modified: head/contrib/bc/src/vm.c
==============================================================================
--- head/contrib/bc/src/vm.c	Wed Aug  5 14:42:45 2020	(r363914)
+++ head/contrib/bc/src/vm.c	Wed Aug  5 15:20:07 2020	(r363915)
@@ -464,7 +464,7 @@ static void bc_vm_process(const char *text) {
 
 		while (BC_PARSE_CAN_PARSE(vm.prs)) vm.parse(&vm.prs);
 
-		bc_program_exec(&vm.prog);
+		if(BC_IS_DC || !BC_PARSE_NO_EXEC(&vm.prs)) bc_program_exec(&vm.prog);
 
 		assert(BC_IS_DC || vm.prog.results.len == 0);
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202008051520.075FK7ho026737>