[PATCH 1/7] Convert a bunch of sprintf to snprintf calls
walter harms
wharms at bfs.de
Wed Nov 2 04:44:36 PDT 2011
looks ok to me,
some minor comments inside.
re,
wh
Am 01.11.2011 23:42, schrieb Alan Coopersmith:
> This batch is the straightforward set - others are more complex and
> need more analysis to determine right size to pass.
>
> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> ---
> exa/exa_render.c | 6 +-
> hw/dmx/examples/ev.c | 4 +-
> hw/dmx/glxProxy/glxscreens.c | 5 +-
> hw/kdrive/ephyr/ephyrhostvideo.c | 9 +-
> hw/kdrive/linux/linux.c | 2 +-
> hw/vfb/InitOutput.c | 3 +-
> hw/xfree86/common/xf86Option.c | 6 +-
> hw/xfree86/common/xf86sbusBus.c | 2 +-
> hw/xfree86/fbdevhw/fbdevhw.c | 6 +-
> hw/xfree86/os-support/bsd/bsd_init.c | 10 +-
> hw/xfree86/os-support/bus/Sbus.c | 12 +-
> hw/xfree86/os-support/linux/lnx_init.c | 2 +-
> hw/xfree86/x86emu/debug.c | 2 +-
> os/connection.c | 4 +-
> os/osinit.c | 2 +-
> os/rpcauth.c | 7 +-
> os/utils.c | 4 +-
> os/xdmcp.c | 4 +-
> randr/rrinfo.c | 2 +-
> xkb/xkbtext.c | 158 ++++++++++++++++----------------
> 20 files changed, 127 insertions(+), 123 deletions(-)
>
> diff --git a/exa/exa_render.c b/exa/exa_render.c
> index 6f2af8a..3974afe 100644
> --- a/exa/exa_render.c
> +++ b/exa/exa_render.c
> @@ -103,13 +103,13 @@ exaPrintCompositeFallback(CARD8 op,
> switch(op)
> {
> case PictOpSrc:
> - sprintf(sop, "Src");
> + snprintf(sop, sizeof(sop), "Src");
> break;
> case PictOpOver:
> - sprintf(sop, "Over");
> + snprintf(sop, sizeof(sop), "Over");
> break;
> default:
> - sprintf(sop, "0x%x", (int)op);
> + snprintf(sop, sizeof(sop), "0x%x", (int)op);
> break;
> }
>
> diff --git a/hw/dmx/examples/ev.c b/hw/dmx/examples/ev.c
> index ba45c2b..ed23b8a 100644
> --- a/hw/dmx/examples/ev.c
> +++ b/hw/dmx/examples/ev.c
> @@ -60,7 +60,7 @@ int main(int argc, char **argv)
> #define test_bit(bit) (mask[(bit)/8] & (1 << ((bit)%8)))
>
> for (i = 0; i < 32; i++) {
> - sprintf(name, "/dev/input/event%d", i);
> + snprintf(name, sizeof(name), "/dev/input/event%d", i);
> if ((fd = open(name, O_RDONLY, 0)) >= 0) {
> ioctl(fd, EVIOCGVERSION, &version);
> ioctl(fd, EVIOCGNAME(sizeof(buf)), buf);
> @@ -92,7 +92,7 @@ int main(int argc, char **argv)
> }
>
> if (argc > 1) {
> - sprintf(name, "/dev/input/event%d", atoi(argv[1]));
> + snprintf(name, sizeof(name), "/dev/input/event%d", atoi(argv[1]));
> if ((fd = open(name, O_RDWR, 0)) >= 0) {
> printf("%s: open, fd = %d\n", name, fd);
> for (i = 0; i < LED_MAX; i++) {
> diff --git a/hw/dmx/glxProxy/glxscreens.c b/hw/dmx/glxProxy/glxscreens.c
> index 01e041c..baa4a65 100644
> --- a/hw/dmx/glxProxy/glxscreens.c
> +++ b/hw/dmx/glxProxy/glxscreens.c
> @@ -120,8 +120,9 @@ static void CalcServerVersionAndExtensions( void )
> __glXVersionMinor = GLX_SERVER_MINOR_VERSION;
> }
>
> - sprintf(GLXServerVersion, "%d.%d DMX %d back-end server(s)",
> - __glXVersionMajor, __glXVersionMinor, __glXNumActiveScreens );
> + snprintf(GLXServerVersion, sizeof(GLXServerVersion),
> + "%d.%d DMX %d back-end server(s)",
> + __glXVersionMajor, __glXVersionMinor, __glXNumActiveScreens );
> /*
> * set the ExtensionsString to the minimum extensions string
> */
> diff --git a/hw/kdrive/ephyr/ephyrhostvideo.c b/hw/kdrive/ephyr/ephyrhostvideo.c
> index 600b50f..69ad8a5 100644
> --- a/hw/kdrive/ephyr/ephyrhostvideo.c
> +++ b/hw/kdrive/ephyr/ephyrhostvideo.c
> @@ -140,7 +140,7 @@ ephyrHostXVLogXErrorEvent (Display *a_display,
> mesg, BUFSIZ);
> (void) fprintf(a_fp, mesg, a_err_event->request_code);
> if (a_err_event->request_code < 128) {
> - sprintf(number, "%d", a_err_event->request_code);
> + snprintf(number, sizeof(number), "%d", a_err_event->request_code);
> XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ);
> } else {
> for (ext = dpy->ext_procs;
> @@ -159,7 +159,8 @@ ephyrHostXVLogXErrorEvent (Display *a_display,
> fputs(" ", a_fp);
> (void) fprintf(a_fp, mesg, a_err_event->minor_code);
> if (ext) {
> - sprintf(mesg, "%s.%d", ext->name, a_err_event->minor_code);
> + snprintf(mesg, sizeof(mesg), "%s.%d",
> + ext->name, a_err_event->minor_code);
> XGetErrorDatabaseText(dpy, "XRequest", mesg, "", buffer, BUFSIZ);
> (void) fprintf(a_fp, " (%s)", buffer);
> }
> @@ -182,8 +183,8 @@ ephyrHostXVLogXErrorEvent (Display *a_display,
> bext = ext;
> }
> if (bext)
> - sprintf(buffer, "%s.%d", bext->name,
> - a_err_event->error_code - bext->codes.first_error);
> + snprintf(buffer, sizeof(buffer), "%s.%d", bext->name,
> + a_err_event->error_code - bext->codes.first_error);
> else
> strcpy(buffer, "Value");
> XGetErrorDatabaseText(dpy, mtype, buffer, "", mesg, BUFSIZ);
> diff --git a/hw/kdrive/linux/linux.c b/hw/kdrive/linux/linux.c
> index a53db49..194e7cd 100644
> --- a/hw/kdrive/linux/linux.c
> +++ b/hw/kdrive/linux/linux.c
> @@ -109,7 +109,7 @@ LinuxInit (void)
> close(fd);
> }
>
> - sprintf(vtname,"/dev/tty%d",vtno); /* /dev/tty1-64 */
> + snprintf(vtname,sizeof(vtname),"/dev/tty%d",vtno); /* /dev/tty1-64 */
>
> if ((LinuxConsoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) < 0)
> {
> diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c
> index 1218547..3e5d051 100644
> --- a/hw/vfb/InitOutput.c
> +++ b/hw/vfb/InitOutput.c
> @@ -560,7 +560,8 @@ vfbAllocateMmappedFramebuffer(vfbScreenInfoPtr pvfb)
> char dummyBuffer[DUMMY_BUFFER_SIZE];
> int currentFileSize, writeThisTime;
>
> - sprintf(pvfb->mmap_file, "%s/Xvfb_screen%d", pfbdir, (int) (pvfb - vfbScreens));
> + snprintf(pvfb->mmap_file, sizeof(pvfb->mmap_file), "%s/Xvfb_screen%d",
> + pfbdir, (int) (pvfb - vfbScreens));
> if (-1 == (pvfb->mmap_fd = open(pvfb->mmap_file, O_CREAT|O_RDWR, 0666)))
> {
> perror("open");
> diff --git a/hw/xfree86/common/xf86Option.c b/hw/xfree86/common/xf86Option.c
> index 9c52878..d1d74f5 100644
> --- a/hw/xfree86/common/xf86Option.c
> +++ b/hw/xfree86/common/xf86Option.c
> @@ -306,7 +306,7 @@ XF86OptionPtr
> xf86ReplaceIntOption(XF86OptionPtr optlist, const char *name, const int val)
> {
> char tmp[16];
> - sprintf(tmp,"%i",val);
> + snprintf(tmp,sizeof(tmp),"%i",val);
> return xf86AddNewOption(optlist,name,tmp);
> }
>
> @@ -314,7 +314,7 @@ XF86OptionPtr
> xf86ReplaceRealOption(XF86OptionPtr optlist, const char *name, const double val)
> {
> char tmp[32];
> - snprintf(tmp,32,"%f",val);
> + snprintf(tmp,sizeof(tmp),"%f",val);
> return xf86AddNewOption(optlist,name,tmp);
> }
>
> @@ -328,7 +328,7 @@ XF86OptionPtr
> xf86ReplacePercentOption(XF86OptionPtr optlist, const char *name, const double val)
> {
> char tmp[16];
> - sprintf(tmp, "%lf%%", val);
> + snprintf(tmp, sizeof(tmp), "%lf%%", val);
> return xf86AddNewOption(optlist,name,tmp);
> }
>
> diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c
> index 181c6ab..b7bb913 100644
> --- a/hw/xfree86/common/xf86sbusBus.c
> +++ b/hw/xfree86/common/xf86sbusBus.c
> @@ -88,7 +88,7 @@ xf86SbusProbe(void)
> xf86SbusInfo = malloc(sizeof(psdp));
> *xf86SbusInfo = NULL;
> for (i = 0; i < 32; i++) {
> - sprintf(fbDevName, "/dev/fb%d", i);
> + snprintf(fbDevName, sizeof(fbDevName), "/dev/fb%d", i);
> CheckSbusDevice(fbDevName, i);
> }
> if (sparcPromInit() >= 0) {
> diff --git a/hw/xfree86/fbdevhw/fbdevhw.c b/hw/xfree86/fbdevhw/fbdevhw.c
> index dee731b..ca549d6 100644
> --- a/hw/xfree86/fbdevhw/fbdevhw.c
> +++ b/hw/xfree86/fbdevhw/fbdevhw.c
> @@ -266,20 +266,20 @@ fbdev_open_pci(struct pci_device * pPci, char **namep)
> int fd, i;
>
> for (i = 0; i < 8; i++) {
> - sprintf(filename,
> + snprintf(filename, sizeof(filename),
> "/sys/bus/pci/devices/%04x:%02x:%02x.%d/graphics/fb%d",
> pPci->domain, pPci->bus, pPci->dev, pPci->func, i);
>
> fd = open(filename, O_RDONLY, 0);
> if (fd < 0) {
> - sprintf(filename,
> + snprintf(filename, sizeof(filename),
> "/sys/bus/pci/devices/%04x:%02x:%02x.%d/graphics:fb%d",
> pPci->domain, pPci->bus, pPci->dev, pPci->func, i);
> fd = open(filename, O_RDONLY, 0);
> }
> if (fd >= 0) {
> close(fd);
> - sprintf(filename, "/dev/fb%d", i);
> + snprintf(filename, sizeof(filename), "/dev/fb%d", i);
>
> fd = open(filename, O_RDWR, 0);
> if (fd != -1) {
> diff --git a/hw/xfree86/os-support/bsd/bsd_init.c b/hw/xfree86/os-support/bsd/bsd_init.c
> index b58d6a7..7079d62 100644
> --- a/hw/xfree86/os-support/bsd/bsd_init.c
> +++ b/hw/xfree86/os-support/bsd/bsd_init.c
> @@ -446,7 +446,7 @@ xf86OpenSyscons()
> }
>
> close(fd);
> - sprintf(vtname, "/dev/ttyv%01x", xf86Info.vtno - 1);
> + snprintf(vtname, sizeof(vtname), "/dev/ttyv%01x", xf86Info.vtno - 1);
> if ((fd = open(vtname, SYSCONS_CONSOLE_MODE, 0)) < 0)
> {
> FatalError("xf86OpenSyscons: Cannot open %s (%s)",
> @@ -550,13 +550,13 @@ xf86OpenPcvt()
> }
>
> close(fd);
> - sprintf(vtname, "%s%01x", vtprefix, xf86Info.vtno - 1);
> + snprintf(vtname, sizeof(vtname), "%s%01x", vtprefix, xf86Info.vtno - 1);
> if ((fd = open(vtname, PCVT_CONSOLE_MODE, 0)) < 0)
> {
> ErrorF("xf86OpenPcvt: Cannot open %s (%s)",
> vtname, strerror(errno));
> xf86Info.vtno = initialVT;
> - sprintf(vtname, "%s%01x", vtprefix, xf86Info.vtno - 1);
> + snprintf(vtname, sizeof(vtname), "%s%01x", vtprefix, xf86Info.vtno - 1);
> if ((fd = open(vtname, PCVT_CONSOLE_MODE, 0)) < 0) {
> FatalError("xf86OpenPcvt: Cannot open %s (%s)",
> vtname, strerror(errno));
> @@ -602,9 +602,9 @@ xf86OpenWScons()
> /* XXX Is this ok? */
> for (i = 0; i < 8; i++) {
> #if defined(__NetBSD__)
> - sprintf(ttyname, "/dev/ttyE%d", i);
> + snprintf(ttyname, sizeof(ttyname), "/dev/ttyE%d", i);
> #elif defined(__OpenBSD__)
> - sprintf(ttyname, "/dev/ttyC%x", i);
> + snprintf(ttyname, sizeof(ttyname), "/dev/ttyC%x", i);
> #endif
> if ((fd = open(ttyname, 2)) != -1)
> break;
> diff --git a/hw/xfree86/os-support/bus/Sbus.c b/hw/xfree86/os-support/bus/Sbus.c
> index 7829d80..c02d2cd 100644
> --- a/hw/xfree86/os-support/bus/Sbus.c
> +++ b/hw/xfree86/os-support/bus/Sbus.c
> @@ -446,14 +446,14 @@ promGetReg(int type)
> if (prop && len >= 4) {
> unsigned int *reg = (unsigned int *)prop;
> if (!promP1275 || (type == PROM_NODE_SBUS) || (type == PROM_NODE_EBUS))
> - sprintf (regstr, "@%x,%x", reg[0], reg[1]);
> + snprintf (regstr, sizeof(regstr), "@%x,%x", reg[0], reg[1]);
> else if (type == PROM_NODE_PCI) {
> if ((reg[0] >> 8) & 7)
> - sprintf (regstr, "@%x,%x", (reg[0] >> 11) & 0x1f, (reg[0] >> 8) & 7);
> + snprintf (regstr, sizeof(regstr), "@%x,%x", (reg[0] >> 11) & 0x1f, (reg[0] >> 8) & 7);
> else
> - sprintf (regstr, "@%x", (reg[0] >> 11) & 0x1f);
> + snprintf (regstr, sizeof(regstr), "@%x", (reg[0] >> 11) & 0x1f);
> } else if (len == 4)
> - sprintf (regstr, "@%x", reg[0]);
> + snprintf (regstr, sizeof(regstr), "@%x", reg[0]);
> else {
> unsigned int regs[2];
>
> @@ -465,9 +465,9 @@ promGetReg(int type)
> prop = promGetProperty("upa-portid", &len);
> if (prop && len == 4) {
> reg = (unsigned int *)prop;
> - sprintf (regstr, "@%x,%x", reg[0], regs[1]);
> + snprintf (regstr, sizeof(regstr), "@%x,%x", reg[0], regs[1]);
> } else
> - sprintf (regstr, "@%x,%x", regs[0] >> 4, regs[1]);
> + snprintf (regstr, sizeof(regstr), "@%x,%x", regs[0] >> 4, regs[1]);
> }
> }
> return regstr;
> diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
> index f18271f..5f3e3a9 100644
> --- a/hw/xfree86/os-support/linux/lnx_init.c
> +++ b/hw/xfree86/os-support/linux/lnx_init.c
> @@ -146,7 +146,7 @@ xf86OpenConsole(void)
>
> i=0;
> while (vcs[i] != NULL) {
> - sprintf(vtname, vcs[i], xf86Info.vtno); /* /dev/tty1-64 */
> + snprintf(vtname, sizeof(vtname), vcs[i], xf86Info.vtno); /* /dev/tty1-64 */
> if ((xf86Info.consoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) >= 0)
> break;
> i++;
> diff --git a/hw/xfree86/x86emu/debug.c b/hw/xfree86/x86emu/debug.c
> index 5eda908..04d0741 100644
> --- a/hw/xfree86/x86emu/debug.c
> +++ b/hw/xfree86/x86emu/debug.c
> @@ -172,7 +172,7 @@ void x86emu_decode_printf (char *x)
> void x86emu_decode_printf2 (char *x, int y)
> {
> char temp[100];
> - sprintf(temp,x,y);
> + snprintf(temp,sizeof(temp),x,y);
> sprintf(M.x86.decoded_buf+M.x86.enc_str_pos,"%s",temp);
> M.x86.enc_str_pos += strlen(temp);
> }
> diff --git a/os/connection.c b/os/connection.c
> index b339f4e..4de6bbe 100644
> --- a/os/connection.c
> +++ b/os/connection.c
> @@ -386,7 +386,7 @@ CreateWellKnownSockets(void)
>
> FD_ZERO (&WellKnownConnections);
>
> - sprintf (port, "%d", atoi (display));
> + snprintf (port, sizeof(port), "%d", atoi (display));
>
> if ((_XSERVTransMakeAllCOTSServerListeners (port, &partial,
> &ListenTransCount, &ListenTransConns) >= 0) &&
> @@ -1267,7 +1267,7 @@ void ListenOnOpenFD(int fd, int noxauth) {
> strcpy(port, display_env);
> } else {
> /* Just some default so things don't break and die. */
> - sprintf(port, ":%d", atoi(display));
> + snprintf(port, sizeof(port), ":%d", atoi(display));
> }
>
> /* Make our XtransConnInfo
> diff --git a/os/osinit.c b/os/osinit.c
> index 45d202d..acea682 100644
> --- a/os/osinit.c
> +++ b/os/osinit.c
> @@ -213,7 +213,7 @@ OsInit(void)
> FILE *err;
>
> if (strlen (display) + strlen (ADMPATH) + 1 < sizeof fname)
> - sprintf (fname, ADMPATH, display);
> + snprintf (fname, sizeof(fname), ADMPATH, display);
> else
> strcpy (fname, devnull);
> /*
> diff --git a/os/rpcauth.c b/os/rpcauth.c
> index ad6ebf9..989a49a 100644
> --- a/os/rpcauth.c
> +++ b/os/rpcauth.c
> @@ -137,13 +137,14 @@ SecureRPCCheck (unsigned short data_length, const char *data,
> } else {
> fullname = authdes_ezdecode(data, data_length);
> if (fullname == (char *)0) {
> - sprintf(rpc_error, "Unable to authenticate secure RPC client (why=%d)", why);
> + snprintf(rpc_error, sizeof(rpc_error),
> + "Unable to authenticate secure RPC client (why=%d)", why);
> *reason = rpc_error;
> } else {
> if (ForEachHostInFamily (FamilyNetname, CheckNetName, fullname))
> return rpc_id;
> - sprintf(rpc_error, "Principal \"%s\" is not authorized to connect",
> - fullname);
> + snprintf(rpc_error, sizeof(rpc_error),
> + "Principal \"%s\" is not authorized to connect", fullname);
> *reason = rpc_error;
> }
> }
> diff --git a/os/utils.c b/os/utils.c
> index 1c75dfc..c828f01 100644
> --- a/os/utils.c
> +++ b/os/utils.c
> @@ -258,7 +258,7 @@ LockServer(void)
> */
> tmppath = LOCK_DIR;
>
> - sprintf(port, "%d", atoi(display));
> + snprintf(port, sizeof(port), "%d", atoi(display));
> len = strlen(LOCK_PREFIX) > strlen(LOCK_TMP_PREFIX) ? strlen(LOCK_PREFIX) :
> strlen(LOCK_TMP_PREFIX);
> len += strlen(tmppath) + strlen(port) + strlen(LOCK_SUFFIX) + 1;
the snprintf() is ok but the code looks odd ....
> @@ -295,7 +295,7 @@ LockServer(void)
> }
> if (lfd < 0)
> FatalError("Could not create lock file in %s\n", tmp);
> - (void) sprintf(pid_str, "%10ld\n", (long)getpid());
> + snprintf(pid_str, sizeof(pid_str), "%10ld\n", (long)getpid());
> (void) write(lfd, pid_str, 11);
> (void) fchmod(lfd, 0444);
> (void) close(lfd);
> diff --git a/os/xdmcp.c b/os/xdmcp.c
> index f5331e1..4644071 100644
> --- a/os/xdmcp.c
> +++ b/os/xdmcp.c
> @@ -1489,7 +1489,7 @@ get_addr_by_name(
> if (port == 0) {
> pport = NULL;
> } else if (port > 0 && port < 65535) {
> - sprintf(portstr, "%d", port);
> + snprintf(portstr, sizeof(portstr), "%d", port);
> } else {
> FatalError("Xserver: port out of range: %d\n", port);
> }
> @@ -1612,7 +1612,7 @@ get_mcast_options(int argc, char **argv, int i)
> }
>
> if (xdm_udp_port > 0 && xdm_udp_port < 65535) {
> - sprintf(portstr, "%d", xdm_udp_port);
> + snprintf(portstr, sizeof(portstr), "%d", xdm_udp_port);
> } else {
> FatalError("Xserver: port out of range: %d\n", xdm_udp_port);
> }
> diff --git a/randr/rrinfo.c b/randr/rrinfo.c
> index fdf3726..02aea52 100644
> --- a/randr/rrinfo.c
> +++ b/randr/rrinfo.c
> @@ -35,7 +35,7 @@ RROldModeAdd (RROutputPtr output, RRScreenSizePtr size, int refresh)
> RRModePtr *modes;
>
> memset (&modeInfo, '\0', sizeof (modeInfo));
> - sprintf (name, "%dx%d", size->width, size->height);
> + snprintf (name, sizeof(name), "%dx%d", size->width, size->height);
>
> modeInfo.width = size->width;
> modeInfo.height = size->height;
> diff --git a/xkb/xkbtext.c b/xkb/xkbtext.c
> index 1ba10a1..885beb7 100644
> --- a/xkb/xkbtext.c
> +++ b/xkb/xkbtext.c
> @@ -119,7 +119,7 @@ char numBuf[20];
> else if (vmodNames&&(vmodNames[ndx]!=None))
> tmp= NameForAtom(vmodNames[ndx]);
> if (tmp==NULL) {
> - sprintf(numBuf,"%d",ndx);
> + snprintf(numBuf,sizeof(numBuf),"%d",ndx);
> tmp = numBuf;
> }
>
> @@ -227,17 +227,17 @@ char buf[100];
>
> if (format==XkbCFile) {
> if (ndx<XkbNumModifiers)
> - sprintf(buf,"%sMapIndex",modNames[ndx]);
> + snprintf(buf,sizeof(buf),"%sMapIndex",modNames[ndx]);
> else if (ndx==XkbNoModifier)
> - sprintf(buf,"XkbNoModifier");
> - else sprintf(buf,"0x%02x",ndx);
> + snprintf(buf,sizeof(buf),"XkbNoModifier");
> + else snprintf(buf,sizeof(buf),"0x%02x",ndx);
> }
> else {
> if (ndx<XkbNumModifiers)
> strcpy(buf,modNames[ndx]);
> else if (ndx==XkbNoModifier)
> strcpy(buf,"none");
> - else sprintf(buf,"ILLEGAL_%02x",ndx);
> + else snprintf(buf,sizeof(buf),"ILLEGAL_%02x",ndx);
> }
> rtrn= tbGetBuffer(strlen(buf)+1);
> strcpy(rtrn,buf);
> @@ -338,7 +338,7 @@ static char buf[32],*rtrn;
>
> if (sym==NoSymbol)
> strcpy(rtrn=buf,"NoSymbol");
> - else sprintf(rtrn=buf, "0x%lx", (long)sym);
> + else snprintf(rtrn=buf, sizeof(buf), "0x%lx", (long)sym);
> return rtrn;
> }
>
> @@ -383,13 +383,13 @@ char *rtrn;
> case XkbSI_AnyOf: rtrn= siMatchText[2]; break;
> case XkbSI_AllOf: rtrn= siMatchText[3]; break;
> case XkbSI_Exactly: rtrn= siMatchText[4]; break;
> - default: sprintf(buf,"0x%x",type&XkbSI_OpMask);
> + default: snprintf(buf,sizeof(buf),"0x%x",type&XkbSI_OpMask);
> return buf;
> }
> if (format==XkbCFile) {
> if (type&XkbSI_LevelOneOnly)
> - sprintf(buf,"XkbSI_LevelOneOnly|XkbSI_%s",rtrn);
> - else sprintf(buf,"XkbSI_%s",rtrn);
> + snprintf(buf,sizeof(buf),"XkbSI_LevelOneOnly|XkbSI_%s",rtrn);
> + else snprintf(buf,sizeof(buf),"XkbSI_%s",rtrn);
> rtrn= buf;
> }
> return rtrn;
> @@ -640,12 +640,12 @@ char *rtrn;
> if (type<=XkbSA_LastAction) {
> rtrn= actionTypeNames[type];
> if (format==XkbCFile) {
> - sprintf(buf,"XkbSA_%s",rtrn);
> + snprintf(buf,sizeof(buf),"XkbSA_%s",rtrn);
> return buf;
> }
> return rtrn;
> }
> - sprintf(buf,"Private");
> + snprintf(buf,sizeof(buf),"Private");
> return buf;
> }
>
> @@ -712,10 +712,10 @@ char tbuf[32];
> act= &action->group;
> TryCopyStr(buf,"group=",sz);
> if (act->flags&XkbSA_GroupAbsolute)
> - sprintf(tbuf,"%d",XkbSAGroup(act)+1);
> + snprintf(tbuf,sizeof(tbuf),"%d",XkbSAGroup(act)+1);
> else if (XkbSAGroup(act)<0)
> - sprintf(tbuf,"%d",XkbSAGroup(act));
> - else sprintf(tbuf,"+%d",XkbSAGroup(act));
> + snprintf(tbuf,sizeof(tbuf),"%d",XkbSAGroup(act));
> + else snprintf(tbuf,sizeof(tbuf),"+%d",XkbSAGroup(act));
> TryCopyStr(buf,tbuf,sz);
> if (act->type==XkbSA_LockGroup)
> return TRUE;
> @@ -738,13 +738,13 @@ char tbuf[32];
> x= XkbPtrActionX(act);
> y= XkbPtrActionY(act);
> if ((act->flags&XkbSA_MoveAbsoluteX)||(x<0))
> - sprintf(tbuf,"x=%d",x);
> - else sprintf(tbuf,"x=+%d",x);
> + snprintf(tbuf,sizeof(tbuf),"x=%d",x);
> + else snprintf(tbuf,sizeof(tbuf),"x=+%d",x);
> TryCopyStr(buf,tbuf,sz);
>
> if ((act->flags&XkbSA_MoveAbsoluteY)||(y<0))
> - sprintf(tbuf,",y=%d",y);
> - else sprintf(tbuf,",y=+%d",y);
> + snprintf(tbuf,sizeof(tbuf),",y=%d",y);
> + else snprintf(tbuf,sizeof(tbuf),",y=+%d",y);
> TryCopyStr(buf,tbuf,sz);
> if (act->flags&XkbSA_NoAcceleration)
> TryCopyStr(buf,",!accel",sz);
> @@ -761,24 +761,24 @@ char tbuf[32];
> act= &action->btn;
> TryCopyStr(buf,"button=",sz);
> if ((act->button>0)&&(act->button<6)) {
> - sprintf(tbuf,"%d",act->button);
> + snprintf(tbuf,sizeof(tbuf),"%d",act->button);
> TryCopyStr(buf,tbuf,sz);
> }
> else TryCopyStr(buf,"default",sz);
> if (act->count>0) {
> - sprintf(tbuf,",count=%d",act->count);
> + snprintf(tbuf,sizeof(tbuf),",count=%d",act->count);
> TryCopyStr(buf,tbuf,sz);
> }
> if (action->type==XkbSA_LockPtrBtn) {
> switch (act->flags&(XkbSA_LockNoUnlock|XkbSA_LockNoLock)) {
> case XkbSA_LockNoLock:
> - sprintf(tbuf,",affect=unlock"); break;
> + snprintf(tbuf,sizeof(tbuf),",affect=unlock"); break;
> case XkbSA_LockNoUnlock:
> - sprintf(tbuf,",affect=lock"); break;
> + snprintf(tbuf,sizeof(tbuf),",affect=lock"); break;
> case XkbSA_LockNoUnlock|XkbSA_LockNoLock:
> - sprintf(tbuf,",affect=neither"); break;
> + snprintf(tbuf,sizeof(tbuf),",affect=neither"); break;
> default:
> - sprintf(tbuf,",affect=both"); break;
> + snprintf(tbuf,sizeof(tbuf),",affect=both"); break;
strncpy() ?
> }
> TryCopyStr(buf,tbuf,sz);
> }
> @@ -797,8 +797,8 @@ char tbuf[32];
> if (act->affect==XkbSA_AffectDfltBtn) {
> TryCopyStr(buf,"affect=button,button=",sz);
> if ((act->flags&XkbSA_DfltBtnAbsolute)||(XkbSAPtrDfltValue(act)<0))
> - sprintf(tbuf,"%d",XkbSAPtrDfltValue(act));
> - else sprintf(tbuf,"+%d",XkbSAPtrDfltValue(act));
> + snprintf(tbuf,sizeof(tbuf),"%d",XkbSAPtrDfltValue(act));
> + else snprintf(tbuf,sizeof(tbuf),"+%d",XkbSAPtrDfltValue(act));
> TryCopyStr(buf,tbuf,sz);
> }
> return TRUE;
> @@ -814,10 +814,10 @@ char tbuf[64];
> if (act->flags&XkbSA_ISODfltIsGroup) {
> TryCopyStr(tbuf,"group=",sz);
> if (act->flags&XkbSA_GroupAbsolute)
> - sprintf(tbuf,"%d",XkbSAGroup(act)+1);
> + snprintf(tbuf,sizeof(tbuf),"%d",XkbSAGroup(act)+1);
> else if (XkbSAGroup(act)<0)
> - sprintf(tbuf,"%d",XkbSAGroup(act));
> - else sprintf(tbuf,"+%d",XkbSAGroup(act));
> + snprintf(tbuf,sizeof(tbuf),"%d",XkbSAGroup(act));
> + else snprintf(tbuf,sizeof(tbuf),"+%d",XkbSAGroup(act));
> TryCopyStr(buf,tbuf,sz);
> }
> else {
> @@ -847,17 +847,17 @@ char tbuf[64];
> nOut++;
> }
> if ((act->affect&XkbSA_ISONoAffectGroup)==0) {
> - sprintf(tbuf,"%sgroups",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sgroups",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if ((act->affect&XkbSA_ISONoAffectPtr)==0) {
> - sprintf(tbuf,"%spointer",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%spointer",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if ((act->affect&XkbSA_ISONoAffectCtrls)==0) {
> - sprintf(tbuf,"%scontrols",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%scontrols",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> @@ -875,8 +875,8 @@ char tbuf[32];
>
> act= &action->screen;
> if ((act->flags&XkbSA_SwitchAbsolute)||(XkbSAScreen(act)<0))
> - sprintf(tbuf,"screen=%d",XkbSAScreen(act));
> - else sprintf(tbuf,"screen=+%d",XkbSAScreen(act));
> + snprintf(tbuf,sizeof(tbuf),"screen=%d",XkbSAScreen(act));
> + else snprintf(tbuf,sizeof(tbuf),"screen=+%d",XkbSAScreen(act));
> TryCopyStr(buf,tbuf,sz);
> if (act->flags&XkbSA_SwitchApplication)
> TryCopyStr(buf,",!same",sz);
> @@ -903,67 +903,67 @@ char tbuf[32];
> else {
> int nOut= 0;
> if (tmp&XkbRepeatKeysMask) {
> - sprintf(tbuf,"%sRepeatKeys",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sRepeatKeys",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbSlowKeysMask) {
> - sprintf(tbuf,"%sSlowKeys",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sSlowKeys",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbBounceKeysMask) {
> - sprintf(tbuf,"%sBounceKeys",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sBounceKeys",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbStickyKeysMask) {
> - sprintf(tbuf,"%sStickyKeys",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sStickyKeys",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbMouseKeysMask) {
> - sprintf(tbuf,"%sMouseKeys",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sMouseKeys",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbMouseKeysAccelMask) {
> - sprintf(tbuf,"%sMouseKeysAccel",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sMouseKeysAccel",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbAccessXKeysMask) {
> - sprintf(tbuf,"%sAccessXKeys",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sAccessXKeys",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbAccessXTimeoutMask) {
> - sprintf(tbuf,"%sAccessXTimeout",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sAccessXTimeout",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbAccessXFeedbackMask) {
> - sprintf(tbuf,"%sAccessXFeedback",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sAccessXFeedback",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbAudibleBellMask) {
> - sprintf(tbuf,"%sAudibleBell",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sAudibleBell",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbOverlay1Mask) {
> - sprintf(tbuf,"%sOverlay1",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sOverlay1",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbOverlay2Mask) {
> - sprintf(tbuf,"%sOverlay2",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sOverlay2",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> if (tmp&XkbIgnoreGroupLockMask) {
> - sprintf(tbuf,"%sIgnoreGroupLock",(nOut>0?"+":""));
> + snprintf(tbuf,sizeof(tbuf),"%sIgnoreGroupLock",(nOut>0?"+":""));
> TryCopyStr(buf,tbuf,sz);
> nOut++;
> }
> @@ -990,12 +990,12 @@ char tbuf[32];
> else if (act->flags&XkbSA_MessageOnPress)
> TryCopyStr(buf,"KeyPress",sz);
> else TryCopyStr(buf,"KeyRelease",sz);
> - sprintf(tbuf,",data[0]=0x%02x",act->message[0]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[1]=0x%02x",act->message[1]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[2]=0x%02x",act->message[2]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[3]=0x%02x",act->message[3]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[4]=0x%02x",act->message[4]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[5]=0x%02x",act->message[5]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[0]=0x%02x",act->message[0]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[1]=0x%02x",act->message[1]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[2]=0x%02x",act->message[2]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[3]=0x%02x",act->message[3]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[4]=0x%02x",act->message[4]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[5]=0x%02x",act->message[5]); TryCopyStr(buf,tbuf,sz);
> return TRUE;
> }
>
> @@ -1016,9 +1016,9 @@ unsigned vmods,vmods_mask;
> (xkb->names->keys[kc].name[0]!='\0')) {
> char *kn;
> kn= XkbKeyNameText(xkb->names->keys[kc].name,XkbXKBFile);
> - sprintf(tbuf,"key=%s",kn);
> + snprintf(tbuf,sizeof(tbuf),"key=%s",kn);
> }
> - else sprintf(tbuf,"key=%d",kc);
> + else snprintf(tbuf,sizeof(tbuf),"key=%d",kc);
> TryCopyStr(buf,tbuf,sz);
> if ((act->mods_mask==0)&&(vmods_mask==0))
> return TRUE;
> @@ -1054,24 +1054,24 @@ XkbDeviceBtnAction * act;
> char tbuf[32];
>
> act= &action->devbtn;
> - sprintf(tbuf,"device= %d",act->device); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),"device= %d",act->device); TryCopyStr(buf,tbuf,sz);
> TryCopyStr(buf,",button=",sz);
> - sprintf(tbuf,"%d",act->button);
> + snprintf(tbuf,sizeof(tbuf),"%d",act->button);
> TryCopyStr(buf,tbuf,sz);
> if (act->count>0) {
> - sprintf(tbuf,",count=%d",act->count);
> + snprintf(tbuf,sizeof(tbuf),",count=%d",act->count);
> TryCopyStr(buf,tbuf,sz);
> }
> if (action->type==XkbSA_LockDeviceBtn) {
> switch (act->flags&(XkbSA_LockNoUnlock|XkbSA_LockNoLock)) {
> case XkbSA_LockNoLock:
> - sprintf(tbuf,",affect=unlock"); break;
> + snprintf(tbuf,sizeof(tbuf),",affect=unlock"); break;
> case XkbSA_LockNoUnlock:
> - sprintf(tbuf,",affect=lock"); break;
> + snprintf(tbuf,sizeof(tbuf),",affect=lock"); break;
> case XkbSA_LockNoUnlock|XkbSA_LockNoLock:
> - sprintf(tbuf,",affect=neither"); break;
> + snprintf(tbuf,sizeof(tbuf),",affect=neither"); break;
> default:
> - sprintf(tbuf,",affect=both"); break;
> + snprintf(tbuf,sizeof(tbuf),",affect=both"); break;
strncpy() ?
> }
> TryCopyStr(buf,tbuf,sz);
> }
> @@ -1086,14 +1086,14 @@ XkbAnyAction * act;
> char tbuf[32];
>
> act= &action->any;
> - sprintf(tbuf,"type=0x%02x",act->type); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[0]=0x%02x",act->data[0]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[1]=0x%02x",act->data[1]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[2]=0x%02x",act->data[2]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[3]=0x%02x",act->data[3]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[4]=0x%02x",act->data[4]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[5]=0x%02x",act->data[5]); TryCopyStr(buf,tbuf,sz);
> - sprintf(tbuf,",data[6]=0x%02x",act->data[6]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),"type=0x%02x",act->type); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[0]=0x%02x",act->data[0]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[1]=0x%02x",act->data[1]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[2]=0x%02x",act->data[2]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[3]=0x%02x",act->data[3]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[4]=0x%02x",act->data[4]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[5]=0x%02x",act->data[5]); TryCopyStr(buf,tbuf,sz);
> + snprintf(tbuf,sizeof(tbuf),",data[6]=0x%02x",act->data[6]); TryCopyStr(buf,tbuf,sz);
> return TRUE;
> }
>
> @@ -1135,7 +1135,7 @@ char buf[ACTION_SZ],*tmp;
> int sz;
>
> if (format==XkbCFile) {
> - sprintf(buf,
> + snprintf(buf,sizeof(buf),
> "{ %20s, { 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x } }",
> XkbActionTypeText(action->type,XkbCFile),
> action->any.data[0],action->any.data[1],action->any.data[2],
> @@ -1143,7 +1143,7 @@ int sz;
> action->any.data[6]);
> }
> else {
> - sprintf(buf,"%s(",XkbActionTypeText(action->type,XkbXKBFile));
> + snprintf(buf,sizeof(buf),"%s(",XkbActionTypeText(action->type,XkbXKBFile));
> sz= ACTION_SZ-strlen(buf)+2; /* room for close paren and NULL */
> if (action->type<(unsigned)XkbSA_NumActions)
> (*copyActionArgs[action->type])(xkb,action,buf,&sz);
> @@ -1163,8 +1163,8 @@ char buf[256],*tmp;
>
> if (format==XkbCFile) {
> if (behavior->type==XkbKB_Default)
> - sprintf(buf,"{ 0, 0 }");
> - else sprintf(buf,"{ %3d, 0x%02x }",behavior->type,behavior->data);
> + snprintf(buf,sizeof(buf),"{ 0, 0 }");
> + else snprintf(buf,sizeof(buf),"{ %3d, 0x%02x }",behavior->type,behavior->data);
> }
> else {
> unsigned type,permanent;
> @@ -1172,14 +1172,14 @@ char buf[256],*tmp;
> permanent=((behavior->type&XkbKB_Permanent)!=0);
>
> if (type==XkbKB_Lock) {
> - sprintf(buf,"lock= %s",(permanent?"Permanent":"TRUE"));
> + snprintf(buf,sizeof(buf),"lock= %s",(permanent?"Permanent":"TRUE"));
> }
> else if (type==XkbKB_RadioGroup) {
> int g;
> char *tmp;
> g= ((behavior->data)&(~XkbKB_RGAllowNone))+1;
> if (XkbKB_RGAllowNone&behavior->data) {
> - sprintf(buf,"allowNone,");
> + snprintf(buf,sizeof(buf),"allowNone,");
> tmp= &buf[strlen(buf)];
> }
> else tmp= buf;
> @@ -1197,12 +1197,12 @@ char buf[256],*tmp;
> kn= XkbKeyNameText(xkb->names->keys[kc].name,XkbXKBFile);
> else {
> static char tbuf[8];
> - sprintf(tbuf,"%d",kc);
> + snprintf(tbuf,sizeof(tbuf),"%d",kc);
> kn= tbuf;
why not snprintf(kn,sizeof(kn),"%d",kc); ?
> }
> if (permanent)
> - sprintf(buf,"permanentOverlay%d= %s",ndx,kn);
> - else sprintf(buf,"overlay%d= %s",ndx,kn);
> + snprintf(buf,sizeof(buf),"permanentOverlay%d= %s",ndx,kn);
> + else snprintf(buf,sizeof(buf),"overlay%d= %s",ndx,kn);
> }
> }
> tmp= tbGetBuffer(strlen(buf)+1);
More information about the xorg-devel
mailing list