aboutsummaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
blob: 8f33bcc90e107faea3a28c67037d1624e9179027 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# Change Log #

All notable changes to this fork of FICS version 1.6.2 will be
documented in this file.

## [Unreleased] ##
- Added parameter lists to many function declarations.
- Added usage of the functions from `err.h`.
- Changed the make install target to not overwrite the data messages
  in case they're already present.
- Made functions and variables private where possible.
- Reformatted code according to OpenBSD's KNF:
  - `talkproc.c`
  - ...

## [1.2] - 2024-04-14 ##
- **Added** parameter lists to many function declarations.
- **Added** usage of `reallocarray()` which handles multiplication
  overflow.
- **Added** usage of `msnprintf()`, `mstrlcpy()` and `mstrlcat()` which
  detects and logs truncation.
- **Added** usage of the functions from `err.h`.
- **Checked out** the following files by tag 1.0, because the previous
  changes made to them possibly introduced game bugs:
  - `algcheck.c`
  - `algcheck.h`
  - `board.c`
  - `movecheck.c`
  - `movecheck.h`
- **Cleared** sensitive data with `explicit_bzero()`.
- **Fixed** an empty hostname in the addplayer program.
- **Fixed** bogus type for storing the return value of `time()`. It should
  really be `time_t`. Multiple occurrences.
- **Fixed** non-ANSI function declarations of functions. (Multiple
  occurrences.)
- **Made** functions and variables private where possible.
- **Reformatted code** according to OpenBSD's KNF:
  - `ratings.c`
  - `variable.c`
  - ...
- **Replaced** unbounded string handling functions. _Multiple_
  occurrences.

## [1.1] - 2024-03-30 ##
- **Added** `PRINTFLIKE()` and fixed many format errors.
- **Added** argument lists to many function declarations.
- **Added** initialization of many variables.
- **Added** newly written manual pages.
- **Added** usage of `ARRAY_SIZE()`
- **Changed** the addplayer program to generate passwords that are 8
  characters long (was 4).
- **Deleted** non-existent functions from the header files.
- **Deleted** obsolete and unused code
- **Deleted** unused includes.
- **Fixed** format strings that weren't string literals. Potentially
  insecure. (_Multiple_ occurrences.)
- **Fixed** incorrect buffer sizes
- **Fixed** unchecked return values
- **Made** functions and variables private (aka static) where possible.
- **Marked** functions that doesn't return `__dead`.
- **Marked** unused function parameters.
- **Redefined** `ASSERT()`
- **Reformatted code** according to OpenBSD's KNF.
- **Replaced** `rand()` calls with arc4random.
- **Replaced** _multiple_ `sprintf()` calls with `snprintf()` + truncation
  checks.
- **Replaced** _multiple_ occurrences of `strcpy()` and `strcat()` with
  size-bounded versions.
- **Switched to** the usage of the functions from `err.h` in multiple
  places for error handling.

## [1.0] - 2023-12-28 ##
- Added a new build system (and deleted the old).
- Added argument lists to many function declarations.
- Added auto-generation of the header file `ficspaths.h` and included
  it in `config.h`.
- Added better handling of memory allocation errors.
- Added usage of the `time_t` typedef in multiple places. This instead
  of `int`.
- Declared file-local functions and variables as `PRIVATE`.
- Deleted disabled code
- Did new revisions of the following files:
  - `board.c`
  - `eco.c`
  - `fics_addplayer.c`
  - `formula.c`
  - `makerank.c`
  - `network.c`
  - `shutdown.c`
  - `stdinclude.h`
  - `utils.c`
  - ...
- Fixed a `sscanf()` bug in `com_anews()`.
- Fixed a bug in `fix_time()` (did return a local address)
- Fixed bogus `crypt()` calls. (The second arg was wrong.)
- Fixed bugs in `process_move()`
- Fixed bugs in `stored_mail_moves()`
- Fixed comparison between pointer and integer in `com_inchannel()`.
- Fixed dead assignments
- Fixed implicit integers
- Fixed _multiple_ cases of use of possibly uninitialized variables.
- Fixed _multiple_ possible buffer overflows
- Fixed _multiple_ `sprintf()` format overflows
- Fixed the type of the variable passed to `strgtime()` and
  `strltime()`. Multiple occurrences.
- Fixed unused variables
- Reformatted code according to OpenBSD's KNF.
- Renamed functions in order to avoid conflicts with system
  declarations.

## 2023-12-07 ##
- Forked FICS version 1.6.2 made by Richard Nash.