1
0
mirror of https://git.sr.ht/~sircmpwn/gmni synced 2024-11-22 20:32:03 +01:00
Gemini client
Go to file
Andrew b46b312817 gmnlm: host freed too early, causing UAF
The host variable is freed too early. If a client certificate is not
found, the later error message in the
GEMINI_STATUS_CLASS_CLIENT_CERTIFICATE_REQUIRED case uses the freed host
variable to produce an incorrect openssl command. This fix just delays
the free to after the switch statement.

Test case:
gmnlm gemini://feeds.drewdevault.com

Prior:
The following OpenSSL command will generate a certificate for this host:

openssl req -x509 -newkey rsa:4096 \
 -keyout /home/andrew/.local/share/gmni/certs/€Ú-=öU.key \
 -out /home/andrew/.local/share/gmni/certs/€Ú-=öU.crt \
 -days 36500 -nodes

Now:
The following OpenSSL command will generate a certificate for this host:

openssl req -x509 -newkey rsa:4096 \
-keyout /home/andrew/.local/share/gmni/certs/feeds.drewdevault.com.key \
-out /home/andrew/.local/share/gmni/certs/feeds.drewdevault.com.crt \
-days 36500 -nodes
2021-06-12 12:13:29 -04:00
doc Initial support for client side certificates 2021-03-05 08:29:02 -05:00
include gmnlm: create cert dir on 6x response 2021-03-09 08:08:45 -05:00
src gmnlm: host freed too early, causing UAF 2021-06-12 12:13:29 -04:00
.gitignore Re-add public headers 2020-10-24 13:56:50 -04:00
config.sh all: rewrite with BearSSL rather than OpenSSL 2021-03-04 10:59:37 -05:00
configure Implement basic client certs for gmnlm 2021-03-05 08:50:57 -05:00
COPYING Initial commit 2020-09-20 10:17:39 -04:00
Makefile Makefile: install libgmni.a with 644 perms 2021-03-07 15:13:09 -05:00
README.md all: rewrite with BearSSL rather than OpenSSL 2021-03-04 10:59:37 -05:00

gmni - A Gemini client

This is a Gemini client. Included are:

Dependencies:

  • A POSIX-like system and a C11 compiler
  • BearSSL
  • scdoc (optional)

Features:

  • Page history
  • Regex searches
  • Bookmarks

Screenshot of the line-mode browser

Compiling

$ mkdir build && cd build
$ ../configure
$ make
# make install

Usage

See gmni(1), gmnlm(1).