~sircmpwn/aerc

lib: fix an out of bounds panic in the server v1 PROPOSED

Daniel Martí: 1
 lib: fix an out of bounds panic in the server

 1 files changed, 1 insertions(+), 0 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~sircmpwn/aerc/patches/9784/mbox | git am -3
Learn more about email & git

[PATCH] lib: fix an out of bounds panic in the server Export this patch

If the message doesn't contain ':', we don't properly discard the
message, so we end up slicing it like msg[:-1].

This can be reproduced if one runs 'aerc foo', as the server receives
'foo' as the message.

'aerc foo' still doesn't do anything very user friendly, but at least it
doesn't panic horribly.

Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
---
 lib/socket.go | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/socket.go b/lib/socket.go
index d5db3dc..e8b8db4 100644
--- a/lib/socket.go
+++ b/lib/socket.go
@@ -63,6 +63,7 @@ func (as *AercServer) handleClient(conn net.Conn) {
		msg := scanner.Text()
		if !strings.ContainsRune(msg, ':') {
			conn.Write([]byte("error: invalid command\n"))
			continue
		}
		as.logger.Printf("unix:%d: got message %s", clientId, msg)
		prefix := msg[:strings.IndexRune(msg, ':')]
-- 
2.25.0
View this thread in the archives