Unruh <[EMAIL PROTECTED]> writes:

> In ntpdate.c around line 542 (4.2.4p4)is the sequence
> if (!authistrusted(sys_authkey)) {
>          char buf[10];
>
>          (void) sprintf(buf, "%lu", (unsigned long)sys_authkey);
>          msyslog(LOG_ERR, "authentication key %s unknown", buf);

Is that too simple?
          msyslog(LOG_ERR, "authentication key %lu unknown",
                  (unsigned long)sys_authkey);


>          exit(1);
> }
>
> Since unsigned long does not have a definite length on all machines, and with 
> the trailing
> zero certainly is potentially longer than 10 bytes, that buf is ripe for
> buffer overflow. 
> It should be something like
>    char buf[(sizeof(unsigned long)*12/5+2)];
> And/or the sprintf should be an snprintf.

_______________________________________________
questions mailing list
[email protected]
https://lists.ntp.org/mailman/listinfo/questions

Reply via email to