[9657] in Athena Bugs
Moira server: client argument checking
daemon@ATHENA.MIT.EDU (Richard Basch)
Sat Jul 18 16:26:09 1992
Date: Sat, 18 Jul 92 16:25:52 -0400
To: bug-moira@MIT.EDU
Cc: bugs@MIT.EDU
From: "Richard Basch" <basch@MIT.EDU>
I believe the following can help to prevent the crash dump that resulted
the other night...
-R
*** /tmp/,RCSt1gb4Bp4 Sat Jul 18 16:24:29 1992
--- server/mr_scall.c Sat Jul 18 16:24:26 1992
***************
*** 278,296 ****
cl->reply.mr_status = 0;
row_count = 0;
- queryname = cl->args->mr_argv[0];
-
if (cl->args->mr_version_no == MR_VERSION_2)
newqueries++;
else
oldqueries++;
! if (strcmp(queryname, "_list_users") == 0)
cl->reply.mr_status = list_users(retr_callback, (char *)cl);
else {
cl->reply.mr_status =
mr_process_query(cl,
! cl->args->mr_argv[0],
cl->args->mr_argc-1,
cl->args->mr_argv+1,
retr_callback,
--- 278,296 ----
cl->reply.mr_status = 0;
row_count = 0;
if (cl->args->mr_version_no == MR_VERSION_2)
newqueries++;
else
oldqueries++;
! if (cl->args->mr_argc < 1)
! cl->reply.mr_status = MR_ARGS;
! else if (strcmp(queryname = cl->args->mr_argv[0], "_list_users") == 0)
cl->reply.mr_status = list_users(retr_callback, (char *)cl);
else {
cl->reply.mr_status =
mr_process_query(cl,
! queryname,
cl->args->mr_argc-1,
cl->args->mr_argv+1,
retr_callback,
***************
*** 310,315 ****
--- 310,318 ----
{
cl->reply.mr_argc = 0;
+ if (cl->args->mr_argc < 1)
+ cl->reply.mr_status = MR_ARGS;
+ else
cl->reply.mr_status =
mr_check_access(cl,
cl->args->mr_argv[0],