From fc77a2d3d384c1ee854deebd4f1a97e751d7eaa2 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Mon, 3 Aug 2015 14:24:29 +0200 Subject: aux/vga: dont rely on atoi() being able to parse hex --- sys/src/cmd/aux/vga/db.c | 6 +++--- sys/src/cmd/aux/vga/main.c | 2 +- sys/src/cmd/aux/vga/vesa.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'sys') diff --git a/sys/src/cmd/aux/vga/db.c b/sys/src/cmd/aux/vga/db.c index 1555cbefd..9c0a93795 100644 --- a/sys/src/cmd/aux/vga/db.c +++ b/sys/src/cmd/aux/vga/db.c @@ -146,14 +146,14 @@ dbpci(Vga *vga, Ndbtuple *tuple) Pcidev *pci; for(t = tuple->entry; t; t = t->entry){ - if(strcmp(t->attr, "vid") != 0 || (vid=atoi(t->val)) == 0) + if(strcmp(t->attr, "vid") != 0 || (vid=strtol(t->val, 0, 0)) == 0) continue; for(td = t->line; td != t; td = td->line){ if(strcmp(td->attr, "did") != 0) continue; if(strcmp(td->val, "*") == 0) did = 0; - else if((did=atoi(td->val)) == 0) + else if((did=strtol(td->val, 0, 0)) == 0) continue; for(pci=nil; pci=pcimatch(pci, vid, did);) if(pci->ccrb == 3) @@ -273,7 +273,7 @@ dbmonitor(Ndb* db, Mode* mode, char* type, char* size) strcpy(val, buf); if(p = ndbgetvalue(db, &s, attr, "", "videobw", nil)){ - mode->videobw = atol(p)*1000000UL; + mode->videobw = strtol(p, 0, 0)*1000000UL; free(p); } diff --git a/sys/src/cmd/aux/vga/main.c b/sys/src/cmd/aux/vga/main.c index 2e0431103..a3915d2ae 100644 --- a/sys/src/cmd/aux/vga/main.c +++ b/sys/src/cmd/aux/vga/main.c @@ -120,7 +120,7 @@ linear(Vga* vga) * to set up a new one. */ vgactlr("addr", buf); - if(atoi(buf)==0 && (buf[0]!='p' || buf[1]!=' ' || atoi(buf+2)==0)){ + if(strtoul(buf, 0, 0)==0 && (buf[0]!='p' || buf[1]!=' ' || strtoul(buf+2, 0, 0)==0)){ sprint(buf, "0x%lux 0x%lux", vga->apz ? vga->apz : vga->vmz, vga->vma); vgactlw("linear", buf); vgactlr("addr", buf); diff --git a/sys/src/cmd/aux/vga/vesa.c b/sys/src/cmd/aux/vga/vesa.c index 54d7830c6..665df9a94 100644 --- a/sys/src/cmd/aux/vga/vesa.c +++ b/sys/src/cmd/aux/vga/vesa.c @@ -261,7 +261,7 @@ load(Vga* vga, Ctlr* ctlr) if(vbe == nil) error("no vesa bios\n"); - mode = atoi(dbattr(vga->mode->attr, "id")); + mode = strtol(dbattr(vga->mode->attr, "id"), nil, 0); scale = dbattr(vga->mode->attr, "scale"); ds = dbattr(vga->mode->attr, "display"); display = ds == nil ? 0 : atoi(ds); -- cgit v1.2.3