summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/readpassword/read.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/internal/readpassword/read.go b/internal/readpassword/read.go
index fe9be45..74057cf 100644
--- a/internal/readpassword/read.go
+++ b/internal/readpassword/read.go
@@ -16,7 +16,8 @@ import (
)
const (
- exitCode = 9
+ exitCode = 9
+ maxPasswordLen = 1000
)
// Once tries to get a password from the user, either from the terminal, extpass
@@ -126,6 +127,10 @@ func readPasswordExtpass(extpass string) string {
func readLineUnbuffered(r io.Reader) (l string) {
b := make([]byte, 1)
for {
+ if len(l) > maxPasswordLen {
+ tlog.Fatal.Printf("fatal: maximum password length of %d bytes exceeded", maxPasswordLen)
+ os.Exit(exitCode)
+ }
n, err := r.Read(b)
if err == io.EOF {
return l