From 8b72726549be9e816ca8af0b9489948cc4fccb41 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 28 Feb 2013 19:21:03 +0100 Subject: [PATCH] ape: add PASS_MAX constant for getpass() to limits.h (from patch/ape-pass_max) add PASS_MAX to limits.h for ape, and make getpass respect it. also increase the size of the maximum passwords (we use long ones at work). Needed for native port of SVN (in progress). --- sys/include/ape/limits.h | 1 + sys/src/ape/lib/v/plan9/getpass.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/include/ape/limits.h b/sys/include/ape/limits.h index dc1a937dc..0837bbe1d 100644 --- a/sys/include/ape/limits.h +++ b/sys/include/ape/limits.h @@ -65,6 +65,7 @@ #define NGROUPS_MAX 10 /*#define OPEN_MAX _POSIX_OPEN_MAX */ /*#define PAGESIZE 1 */ +#define PASS_MAX 64 /*#define PATH_MAX _POSIX_PATH_MAX */ /*#define PIPE_BUF _POSIX_PIPE_BUF */ /*#define RTSIG_MAX _POSIX_RTSIG_MAX */ diff --git a/sys/src/ape/lib/v/plan9/getpass.c b/sys/src/ape/lib/v/plan9/getpass.c index f8f6a8e89..1b8bbc325 100644 --- a/sys/src/ape/lib/v/plan9/getpass.c +++ b/sys/src/ape/lib/v/plan9/getpass.c @@ -2,6 +2,7 @@ #define _RESEARCH_SOURCE #include #include +#include #include char * @@ -10,7 +11,7 @@ getpass(char *prompt) int c; char *p; FILE *fi; - static char pbuf[9]; + static char pbuf[PASS_MAX]; void (*sig)(int); if ((fi = fopen("/dev/cons", "r")) == NULL) @@ -28,7 +29,7 @@ getpass(char *prompt) else if (c == '\b') { if (p > pbuf) p--; - } else if (p < &pbuf[8]) + } else if (p < &pbuf[sizeof(pbuf)-1]) *p++ = c; *p = '\0';