Compare commits

..

13 Commits

Author SHA1 Message Date
Landon Curt Noll
e0cd9bb3db Release v2.14.0.6
The following are the changes in this release:

    Fixed typo in cal/statistics.cal thanks to a report by <GitHub user
    dennisaldea>.

    Fixed an old Windoz pun in README.WINDOWS as requested by <GitHub
    user marcodegio>.

    Fixed a really obscure bug in the internal initconstants()
    function of const.c that has been sitting for over 31 years!

	We are amazed that nobody has encountered this bug before
	now.  Nevertheless, our very extensive regression and
	multi-architecture testing found the bug.  Now, after all
	those years, it is fixed.

    Fixed issues identied by the default CodeUL GitHub security code scan:

	Wrong type of arguments to printf in have_fpos_pos.c
	Multiplication result converted to larger type in zfunc.c
2021-10-22 03:36:40 -07:00
Landon Curt Noll
f0f6171354 Release v2.14.0.5
Fixed a really obscure bug in the internal initconstants()
function of const.c that has been sitting for over 31 years!

    We are amazed that nobody has encountered this bug before
    now.  Nevertheless, our very extensive regression and
    multi-architecture testing found the bug.  Now, after all
    those years, it is fixed.

Fixed issues identied by the default CodeUL GitHub security code
scan:

    Wrong type of arguments to printf in have_fpos_pos.c
    Multiplication result converted to larger type in zfunc.c
2021-10-22 03:20:58 -07:00
Landon Curt Noll
94861cc6d2 Improved an internal allocation
Improved the way that the internal array,
consttable, is allocated.
2021-10-22 03:09:08 -07:00
Landon Curt Noll
286233e28f Fixed internal code bugs
Fixed a really obscure bug in the internal initconstants()
function of const.c that has been sitting for over 31 years!

    We are amazed that nobody has encountered this bug before
    now.  Nevertheless, our very extensive regression and
    multi-architecture testing found the bug.  Now, after all
    those years, it is fixed.

Fixed issues identied by the default CodeUL GitHub security code scan:

    Wrong type of arguments to printf in have_fpos_pos.c
    Multiplication result converted to larger type in zfunc.c
2021-10-22 03:05:12 -07:00
Landon Curt Noll
99ac7836aa Create SECURITY.md 2021-10-22 01:46:12 -07:00
Landon Curt Noll
6c0c8e0ef6 Fixed issues noted by default GitHub code scan 2021-10-22 01:39:07 -07:00
Landon Curt Noll
8aa5f140bf Release v2.12.0.4 2021-10-22 01:26:25 -07:00
Landon Curt Noll
2fcb9a5995 Create codeql-analysis.yml 2021-10-22 01:25:16 -07:00
Landon Curt Noll
8b018b697d Updated CHANGES as per GitHub pull request #35 2021-10-21 12:21:10 -07:00
Landon Curt Noll
0e269ecd67 Merge pull request #35 from marcodegio/patch-1
Update README.WINDOWS
2021-10-21 12:15:56 -07:00
Landon Curt Noll
a640bc4656 Fixed typo in cal/statistics.cal
Thanks to a report by <GitHub user dennisaldea>.
2021-10-21 12:12:31 -07:00
Marco Degiovanni
62a95499ef Update README.WINDOWS
i changed the first line from Windoz to Windows
2021-10-21 20:05:11 +02:00
Landon Curt Noll
9e92d4a35a Change initnumbs[] to be NULL terminated 2021-09-28 22:32:06 -07:00
14 changed files with 134 additions and 20 deletions

71
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,71 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '41 1 * * 6'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

19
CHANGES
View File

@@ -191,6 +191,25 @@ The following are the changes from calc version 2.14.0.0 to date:
; print hm2h(241, -25.5594);
0.57401
Fixed typo in cal/statistics.cal thanks to a report by <GitHub user
dennisaldea>.
Fixed an old Windoz pun in README.WINDOWS as requested by <GitHub
user marcodegio>.
Fixed a really obscure bug in the internal initconstants()
function of const.c that has been sitting for over 31 years!
We are amazed that nobody has encountered this bug before
now. Nevertheless, our very extensive regression and
multi-architecture testing found the bug. Now, after all
those years, it is fixed.
Fixed issues identied by the default CodeUL GitHub security code scan:
Wrong type of arguments to printf in have_fpos_pos.c
Multiplication result converted to larger type in zfunc.c
The following are the changes from calc version 2.13.0.1 to 2.13.0.1:

View File

@@ -1205,7 +1205,7 @@ EXT=
# The default calc versions
#
VERSION= 2.14.0.3
VERSION= 2.14.0.6
# Names of shared libraries with versions
#

View File

@@ -1,4 +1,4 @@
Dear calc user on a Windoz based system,
Dear calc user on a Windows based system,
See the HOWTO.INSTALL file for information on how to build and install calc.
See also the README file.

21
SECURITY.md Normal file
View File

@@ -0,0 +1,21 @@
# Security Policy
## Supported Versions
Use this section to tell people about which versions of your project are
currently being supported with security updates.
| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| < 4.0 | :x: |
## Reporting a Vulnerability
Use this section to tell people how to report a vulnerability.
Tell them where to go, how often they can expect to get an update on a
reported vulnerability, what to expect if the vulnerability is accepted or
declined, etc.

View File

@@ -371,7 +371,7 @@ define normalcdf(x,mu,sigma){
define probit(p){
if(p<0 || p > 1) return newerror("probit: p out of domain 0<=p<=1");
return sqrt(2)*ervinv(2*p-1);
return sqrt(2)*erfinv(2*p-1);
}
define normalcdfinv(p,mu,sigma){

13
const.c
View File

@@ -44,16 +44,16 @@ initconstants(void)
{
int i;
consttable = (NUMBER **) malloc(sizeof(NUMBER *) * CONSTALLOCSIZE);
consttable = (NUMBER **) calloc(sizeof(NUMBER *), CONSTALLOCSIZE);
if (consttable == NULL) {
math_error("Unable to allocate constant table");
/*NOTREACHED*/
}
for (i = 0; i < INITCONSTCOUNT; i++)
for (i = 0; initnumbs[i] != NULL; i++) {
consttable[i] = initnumbs[i];
consttable[INITCONSTCOUNT] = NULL; /* firewall */
constcount = INITCONSTCOUNT;
constavail = CONSTALLOCSIZE - INITCONSTCOUNT;
}
constcount = i-1;
constavail = CONSTALLOCSIZE - constcount;
}
@@ -123,6 +123,9 @@ addqconstant(NUMBER *q)
tp = consttable;
for (index = 0; index < constcount; index++, tp++) {
t = *tp;
if (t == NULL) { /* paranoia */
break;
}
if (t->links == 0) {
if (!havefirst) {
havefirst = TRUE;

View File

@@ -496,7 +496,7 @@ EXT=
# The default calc versions
#
VERSION= 2.14.0.3
VERSION= 2.14.0.6
# Names of shared libraries with versions
#

View File

@@ -496,7 +496,7 @@ EXT=
# The default calc versions
#
VERSION= 2.14.0.3
VERSION= 2.14.0.6
# Names of shared libraries with versions
#

View File

@@ -56,8 +56,8 @@ main(void)
printf("#define FPOS_POS_BITS %d\n", FPOS_POS_BITS);
printf("#define FPOS_POS_LEN %d\n", int(FPOS_POS_BITS/8));
# else
printf("#define FPOS_POS_BITS %d\n", sizeof(pos.__pos)*8);
printf("#define FPOS_POS_LEN %d\n", sizeof(pos.__pos));
printf("#define FPOS_POS_BITS %lu\n", sizeof(pos.__pos)*8);
printf("#define FPOS_POS_LEN %lu\n", sizeof(pos.__pos));
# endif
#else

View File

@@ -53,10 +53,12 @@ NUMBER _qfourhundred = { { _fourhundredval_, 1, 0 },
NUMBER _qtwentyfour = { { _twentyfourval_, 1, 0 },
{ _oneval_, 1, 0 }, 1, NULL };
NUMBER * initnumbs[INITCONSTCOUNT] = {&_qzero_, &_qone_, &_qtwo_, &_qthree_,
NUMBER * initnumbs[] = {&_qzero_, &_qone_, &_qtwo_, &_qthree_,
&_qfour_, &_qten_, &_qnegone_, &_qonehalf_, &_qneghalf_,
&_qonesqbase_, &_qtendivnine_, &_qninedivten_,
&_qthreesixty, &_qfourhundred, &_qtwentyfour };
&_qthreesixty, &_qfourhundred, &_qtwentyfour,
NULL /* must be last */
};
/*
@@ -1488,7 +1490,7 @@ shownumbers(void)
printf("Index Links Digits Value\n");
printf("----- ----- ------ -----\n");
for (i = 0, k = 0; i < INITCONSTCOUNT; i++) {
for (i = 0, k = 0; initnumbs[i] != NULL; i++) {
count++;
vp = initnumbs[i];
printf("%6ld %4ld ", k++, vp->links);

View File

@@ -35,8 +35,6 @@
#endif
#define INITCONSTCOUNT 15 /* number of initnumbs[] pre-defined constants */
/*
* Rational arithmetic definitions.
*/

View File

@@ -54,7 +54,7 @@ static char *program;
#define MAJOR_VER 2 /* major library version */
#define MINOR_VER 14 /* minor library version */
#define MAJOR_PATCH 0 /* major software version level */
#define MINOR_PATCH 3 /* minor software version level */
#define MINOR_PATCH 6 /* minor software version level */
/*

View File

@@ -1034,7 +1034,7 @@ zgcd(ZVALUE z1, ZVALUE z2, ZVALUE *res)
}
needw = FALSE;
}
g = *a0 * w;
g = (FULL) (*a0 * w);
if (h < BASEB) {
g &= (1 << h) - 1;
} else {
@@ -1044,7 +1044,7 @@ zgcd(ZVALUE z1, ZVALUE z2, ZVALUE *res)
g = 1;
}
} else {
g = (HALF) *a0 * w;
g = (FULL) (*a0 * w);
}
a = a0;
b = b0;