[Mauiusers] maui showq

Earle Nietzel Earle.Nietzel at marist.edu
Thu Nov 16 09:36:52 MST 2006



Continued...

After my last post my initial impression was related to using an incorrect
wire protocol. Since then I have done more testing and have the problems
related to a series of sprintf()'s. Here is the code where the mangling of
the  message header happens:

snippet from src/mcom/MSU.c

      if (DoSocketLayerAuth == TRUE)
        {
        time(&Now);

        sprintf(TSLine,"%s%ld %s%s",
          MCKeyword[mckTimeStamp],
          (long)Now,
          MCKeyword[mckAuth],
          MUUIDToName(MOSGetEUID()));

        if (S->Name[0] != '\0')
          {

          /* sprintf weirdness

          sprintf(TSLine,"%s %s%s",
            TSLine,
            MCKeyword[mckClient],
            S->Name);

          * These strcat's perform the same thing as the above sprintf
          */

          strcat(TSLine, " ");
          strcat(TSLine, MCKeyword[mckClient]);
          strcat(TSLine, S->Name);
          }

        /* sprintf weirdness

        sprintf(TSLine,"%s %s",
          TSLine,
          MCKeyword[mckData]);

         * These strcat's perform the same thing as the above sprintf
         */

        strcat(TSLine, " ");
        strcat(TSLine, MCKeyword[mckData]);


        MSecGetChecksum2(
          TSLine,
          strlen(TSLine),
          S->SBuffer,
          strlen(S->SBuffer),  /* NOTE:  was S->SBufSize */
          CKSum,
          NULL,
          S->CSAlgo,
          S->CSKey);

        sprintf(CKLine,"%s%s %s",
          MCKeyword[mckCheckSum],
          CKSum,
          TSLine);
        }  /* END if (DoSocketLayerAuth == TRUE) */

Before I changed anything the above code using the sprintf's gave me the
following message header (no TS):
CK=3705ca6ad72eedfb  DT=

After I commented out the above sprintf's and inserted the srtcat's here is
the header that gets created:
CK=a9cada1bf3c723cf TS=1163691018 AUTH=root DT=

At this point I get much further and now the client gives the following
error:
ERROR:    cannot parse server response (status)

I have traced the problem to when the client receives this message from the
server it looks for a status code which should look like "SC=1" but that
does not appear in the message. Here is the message:
CK=0dbeffe7e9858cae TS=1163691019 AUTH=root CLIENT=[NONE] DT=   1
ARG=1163690830 10 10 10 10 0 0
If you notice there are three white spaces right before the 1 in "DT=   1",
I will bet money that in should read "DT=SC=1".

I am going through the server code now to find out where the SC is added to
the message. It would be helpful if someone with a working system can send
me the output of "showq --loglevel=9".

Thank you,
 Earle



More information about the mauiusers mailing list