Allow up to 40 args in the chat script (was 20).

Ignore subsequent args rather than scribbling.

PR:		1952
Submitted by:	Mikael Hybsch <micke@free.dynas.se>
This commit is contained in:
Brian Somers 1997-05-07 23:01:25 +00:00
parent c2855f6e47
commit e68d210e8f
4 changed files with 20 additions and 15 deletions

View File

@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* $Id$
* $Id: auth.c,v 1.10 1997/02/22 16:10:01 peter Exp $
*
* TODO:
* o Implement check against with registered IP addresses.
@ -68,7 +68,7 @@ LocalAuthValidate( char *fname, char *system, char *key) {
continue;
buff[strlen(buff)-1] = 0;
bzero(vector, sizeof(vector));
n = MakeArgs(buff, vector);
n = MakeArgs(buff, vector, VECSIZE(vector));
if (n < 1)
continue;
if (strcmp(vector[0], system) == 0) {
@ -102,7 +102,7 @@ char *fname, *system, *key;
continue;
buff[strlen(buff)-1] = 0;
bzero(vector, sizeof(vector));
n = MakeArgs(buff, vector);
n = MakeArgs(buff, vector, VECSIZE(vector));
if (n < 2)
continue;
if (strcmp(vector[0], system) == 0) {
@ -143,7 +143,7 @@ int len, setaddr;
continue;
buff[strlen(buff)-1] = 0;
bzero(vector, sizeof(vector));
n = MakeArgs(buff, vector);
n = MakeArgs(buff, vector, VECSIZE(vector));
if (n < 2)
continue;
if (strlen(vector[0]) == len && strncmp(vector[0], system, len) == 0) {

View File

@ -18,7 +18,7 @@
* Columbus, OH 43221
* (614)451-1883
*
* $Id: chat.c,v 1.21 1997/03/09 20:09:14 ache Exp $
* $Id: chat.c,v 1.22 1997/03/13 12:45:28 brian Exp $
*
* TODO:
* o Support more UUCP compatible control sequences.
@ -39,6 +39,7 @@
#include "timeout.h"
#include "vars.h"
#include "sig.h"
#include "chat.h"
#define IBSIZE 200
@ -80,9 +81,10 @@ int instring;
}
int
MakeArgs(script, pvect)
MakeArgs(script, pvect, maxargs)
char *script;
char **pvect;
int maxargs;
{
int nargs, nb;
int instring;
@ -96,9 +98,11 @@ char **pvect;
instring = 1;
script++;
if (*script == '\0')
return(nargs);
break; /* Shouldn't return here. Need to null terminate below */
} else
instring = 0;
if (nargs >= maxargs-1)
break;
*pvect++ = script;
nargs++;
script = findblank(script, instring);
@ -398,7 +402,7 @@ char *command, *out;
cp--;
}
snprintf(tmp, sizeof tmp, "%s %s", command, cp);
(void) MakeArgs(tmp, &vector);
(void) MakeArgs(tmp, vector, VECSIZE(vector));
pipe(fids);
pid = fork();
@ -544,7 +548,7 @@ int
DoChat(script)
char *script;
{
char *vector[20];
char *vector[40];
char **argv;
int argc, n, state;
#ifdef DEBUG
@ -559,7 +563,7 @@ char *script;
numaborts = 0;
bzero(vector, sizeof(vector));
n = MakeArgs(script, &vector);
n = MakeArgs(script, vector, VECSIZE(vector));
#ifdef DEBUG
logprintf("n = %d\n", n);
for (i = 0; i < n; i++)

View File

@ -18,12 +18,13 @@
* Columbus, OH 43221
* (614)451-1883
*
* $Id$
* $Id: chat.h,v 1.4 1997/02/22 16:10:07 peter Exp $
*
*/
#ifndef _CHAT_H_
#define _CHAT_H_
#include "cdefs.h"
extern char * ExpandString __P((char *, char *, int, int));
extern int MakeArgs __P((char *, char **));
extern int MakeArgs __P((char *, char **, int));
#define VECSIZE(v) (sizeof(v) / sizeof(v[0]))
#endif

View File

@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* $Id: command.c,v 1.38 1997/04/14 23:48:12 brian Exp $
* $Id: command.c,v 1.39 1997/04/21 01:01:40 brian Exp $
*
*/
#include <sys/types.h>
@ -41,8 +41,8 @@
#include <net/route.h>
#include "os.h"
#include <paths.h>
#include "chat.h"
extern int MakeArgs();
extern void Cleanup(), TtyTermMode(), PacketMode();
extern int EnableCommand(), DisableCommand(), DisplayCommand();
extern int AcceptCommand(), DenyCommand();
@ -555,7 +555,7 @@ int prompt;
if (cp)
*cp = '\0';
{
argc = MakeArgs(buff, &vector);
argc = MakeArgs(buff, vector, VECSIZE(vector));
argv = vector;
if (argc > 0)