Fredrik Lindgren <[email protected]> writes:

> [pam_oath.c:pam_sm_authenticate(301)] authenticate rc 4711 (UNKNOWN:
> Liboath unknown error) last otp Mon Apr  2 10:23:06 2012

Thank you.  So the culprit is this code:

          r = fputs (origline, outfh);
          if (r <= 0)
            return OATH_PRINTF_ERROR;

The POSIX standard says fputs should return a "non-negative number", or
EOF.  Admittedly, 0 can be considered a non-negative number, and if it
returns 0 on success the code above would fail with OATH_PRINTF_ERROR
anyway.  So the code may be buggy.  Can you make the code look like
this:

          r = fputs (origline, outfh);
          printf ("fputs rc %d\n", r);
          if (r <= 0)
            return OATH_PRINTF_ERROR;

and try again and show me what it prints?

For consistency, maybe the code should use fprintf instead of fputs
here...

Thanks,
/Simon

Reply via email to