pc/rtc: make sure string is NUL terminates for rtc write

This commit is contained in:
cinap_lenrek 2022-07-20 18:52:02 +00:00
parent 951ab17262
commit 4063334e6f
1 changed files with 7 additions and 8 deletions

View File

@ -227,26 +227,25 @@ rtcwrite(Chan* c, void* buf, long n, vlong off)
char *a, *start;
Rtc rtc;
ulong secs;
char *cp, sbuf[32];
uchar bcdclock[Nbcd];
char *cp, *ep;
ulong offset = off;
if(offset!=0)
error(Ebadarg);
switch((ulong)c->qid.path){
case Qrtc:
/*
* read the time
*/
cp = ep = buf;
ep += n;
while(cp < ep){
if(*cp>='0' && *cp<='9')
if(n >= sizeof(sbuf))
error(Ebadarg);
strncpy(sbuf, buf, n);
sbuf[n] = '\0';
for(cp = sbuf; *cp != '\0'; cp++)
if(*cp >= '0' && *cp <= '9')
break;
cp++;
}
secs = strtoul(cp, 0, 0);
/*