Am 29.10.2011 06:41, schrieb Alan Coopersmith:
> As long as we're carrying around a compatibility copy in os/strl*.c,
> might as well use them.
> 
> Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com>
> ---
>  Xext/xvmc.c                    |    6 ++----
>  hw/dmx/config/dmxcompat.c      |    3 +--
>  hw/dmx/config/scanner.l        |    2 +-
>  hw/dmx/dmxinit.c               |    2 +-
>  hw/xfree86/common/xf86Config.c |    3 +--
>  hw/xfree86/common/xf86Xinput.c |    5 ++---
>  hw/xfree86/common/xf86pciBus.c |   12 +++++-------
>  hw/xfree86/parser/scan.c       |    6 ++++--
>  hw/xquartz/xpr/dri.c           |    3 +--
>  os/access.c                    |    6 ++----
>  xkb/ddxLoad.c                  |    6 ++----
>  xkb/maprules.c                 |    3 +--
>  xkb/xkbtext.c                  |    3 +--
>  13 files changed, 24 insertions(+), 36 deletions(-)
> 
> diff --git a/Xext/xvmc.c b/Xext/xvmc.c
> index bc78b55..47b9f47 100644
> --- a/Xext/xvmc.c
> +++ b/Xext/xvmc.c
> @@ -777,14 +777,12 @@ xf86XvMCRegisterDRInfo(ScreenPtr pScreen, char *name,
>                      int patchLevel)
>  {
>      XvMCScreenPtr pScreenPriv = XVMC_GET_PRIVATE(pScreen);
> -    strncpy(pScreenPriv->clientDriverName, name,
> +    strlcpy(pScreenPriv->clientDriverName, name,
>           DR_CLIENT_DRIVER_NAME_SIZE);
> -    strncpy(pScreenPriv->busID, busID, DR_BUSID_SIZE);
> +    strlcpy(pScreenPriv->busID, busID, DR_BUSID_SIZE);
>      pScreenPriv->major = major;
>      pScreenPriv->minor = minor;
>      pScreenPriv->patchLevel = patchLevel;
> -    pScreenPriv->clientDriverName[DR_CLIENT_DRIVER_NAME_SIZE-1] = 0;
> -    pScreenPriv->busID[DR_BUSID_SIZE-1] = 0;
>      return Success;
>  }
>  
> diff --git a/hw/dmx/config/dmxcompat.c b/hw/dmx/config/dmxcompat.c
> index b4190ff..98c52eb 100644
> --- a/hw/dmx/config/dmxcompat.c
> +++ b/hw/dmx/config/dmxcompat.c
> @@ -94,8 +94,7 @@ static void dmxVDLDisplayEntry(const char *buf,
>      char       *end;
>  
>      pt   = strchr(buf, ' ');
> -    strncpy(name, buf, pt-buf);
> -    name[pt-buf] = '\0';
> +    strlcpy(name, buf, 1+pt-buf);
>      *len  = strlen(name);
>      
>      *x     = strtol(pt, &end, 10);
> diff --git a/hw/dmx/config/scanner.l b/hw/dmx/config/scanner.l
> index cef99d0..5ce268d 100644
> --- a/hw/dmx/config/scanner.l
> +++ b/hw/dmx/config/scanner.l
> @@ -152,7 +152,7 @@ static int getdimension(int token, const char *text, int 
> leng)
>      char *tmp = dmxConfigAlloc(leng+1);
>      int  x, y;
>  
> -    strncpy(tmp, text, leng);
> +    strlcpy(tmp, text, leng+1);
>      x = strtol(tmp, &endptr, 10);
>      while (*endptr && !isdigit(*endptr)) ++endptr;
>      y = strtol(endptr, NULL, 10);
> diff --git a/hw/dmx/dmxinit.c b/hw/dmx/dmxinit.c
> index 165476c..b950c50 100644
> --- a/hw/dmx/dmxinit.c
> +++ b/hw/dmx/dmxinit.c
> @@ -138,7 +138,7 @@ static int dmxErrorHandler(Display *dpy, XErrorEvent *ev)
>          for (ext = dpy->ext_procs;
>               ext && ext->codes.major_opcode != ev->request_code;
>               ext = ext->next);
> -        if (ext) strncpy(buf, ext->name, sizeof(buf));
> +        if (ext) strlcpy(buf, ext->name, sizeof(buf));
>          else     buf[0] = '\0';
>      }
>      dmxLog(dmxWarning, "                 Major opcode: %d (%s)\n",
> diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
> index cb4be42..cc79973 100644
> --- a/hw/xfree86/common/xf86Config.c
> +++ b/hw/xfree86/common/xf86Config.c
> @@ -195,8 +195,7 @@ xf86ValidateFontPath(char *path)
>       dirlen = p1 - path_elem;
>        else
>       dirlen = strlen(path_elem);
> -      strncpy(dir_elem, path_elem, dirlen);
> -      dir_elem[dirlen] = '\0';
> +      strlcpy(dir_elem, path_elem, dirlen + 1);
>        flag = stat(dir_elem, &stat_buf);
>        if (flag == 0)
>       if (!S_ISDIR(stat_buf.st_mode))
> diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
> index 425b359..63f0039 100644
> --- a/hw/xfree86/common/xf86Xinput.c
> +++ b/hw/xfree86/common/xf86Xinput.c
> @@ -460,10 +460,9 @@ HostOS(void)
>  
>      if (*host_os == '\0') {
>          if (uname(&name) >= 0)
> -            strcpy(host_os, name.sysname);
> +            strlcpy(host_os, name.sysname, sizeof(host_os));
>          else {
> -            strncpy(host_os, "unknown", sizeof(host_os));
> -            host_os[sizeof(host_os)-1] = '\0';
> +            strlcpy(host_os, "unknown", sizeof(host_os));
>          }
>      }
>      return host_os;
> diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
> index eb5323c..c0591a1 100644
> --- a/hw/xfree86/common/xf86pciBus.c
> +++ b/hw/xfree86/common/xf86pciBus.c
> @@ -1210,9 +1210,9 @@ matchDriverFromFiles (char** matches, uint16_t 
> match_vendor, uint16_t match_chip
>          /* A tiny bit of sanity checking. We should probably do better */
>          if (strncmp(&(direntry->d_name[len-4]), ".ids", 4) == 0) {
>              /* We need the full path name to open the file */
> -            strncpy(path_name, PCI_TXT_IDS_PATH, 256);
> -            strncat(path_name, "/", 1);
> -            strncat(path_name, direntry->d_name, (256 - strlen(path_name) - 
> 1));
> +            strlcpy(path_name, PCI_TXT_IDS_PATH, sizeof(path_name));
> +            strlcat(path_name, "/", sizeof(path_name));
> +            strlcat(path_name, direntry->d_name, sizeof(path_name));

        hi Alan,
        to improve readablity (and no clue what  path_name actualy is):
        asprintf(&path_name,"%s/%s",PCI_TXT_IDS_PATH,direntry->d_name);


        re
         wh

>              fp = fopen(path_name, "r");
>              if (fp == NULL) {
>                  xf86Msg(X_ERROR, "Could not open %s for reading. 
> Exiting.\n", path_name);
> @@ -1226,8 +1226,7 @@ matchDriverFromFiles (char** matches, uint16_t 
> match_vendor, uint16_t match_chip
>  #endif /* __GLIBC __ */
>                  xchomp(line);
>                  if (isdigit(line[0])) {
> -                    strncpy(vendor_str, line, 4);
> -                    vendor_str[4] = '\0';
> +                    strlcpy(vendor_str, line, sizeof(vendor_str));
>                      vendor = (int)strtol(vendor_str, NULL, 16);
>                      if ((strlen(&line[4])) == 0) {
>                          chip_str[0] = '\0';
> @@ -1239,8 +1238,7 @@ matchDriverFromFiles (char** matches, uint16_t 
> match_vendor, uint16_t match_chip
>                              chip = -1;
>                          } else {
>                              /* Ok, it's a real ID */
> -                            strncpy(chip_str, &line[4], 4);
> -                            chip_str[4] = '\0';
> +                            strlcpy(chip_str, &line[4], sizeof(chip_str));
>                              chip = (int)strtol(chip_str, NULL, 16);
>                          }
>                      }
> diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c
> index 1cff3bc..8d2855f 100644
> --- a/hw/xfree86/parser/scan.c
> +++ b/hw/xfree86/parser/scan.c
> @@ -281,8 +281,10 @@ again:
>                               if (builtinConfig[builtinIndex] == NULL)
>                                       ret = NULL;
>                               else {
> -                                     ret = strncpy(configBuf, 
> builtinConfig[builtinIndex],
> -                                                     CONFIG_BUF_LEN);
> +                                     strlcpy(configBuf,
> +                                             builtinConfig[builtinIndex],
> +                                             CONFIG_BUF_LEN);
> +                                     ret = configBuf;
>                                       builtinIndex++;
>                               }
>                       }
> diff --git a/hw/xquartz/xpr/dri.c b/hw/xquartz/xpr/dri.c
> index 8bae6b0..a58f2c7 100644
> --- a/hw/xquartz/xpr/dri.c
> +++ b/hw/xquartz/xpr/dri.c
> @@ -813,8 +813,7 @@ Bool DRICreatePixmap(ScreenPtr pScreen, Drawable id,
>       return FALSE;
>      }
>      
> -    strncpy(path, shared->shmPath, pathmax);
> -    path[pathmax - 1] = '\0';
> +    strlcpy(path, shared->shmPath, pathmax);
>      
>      dixSetPrivate(&pPix->devPrivates, DRIPixmapBufferPrivKey, shared);
>  
> diff --git a/os/access.c b/os/access.c
> index f31626d..1598940 100644
> --- a/os/access.c
> +++ b/os/access.c
> @@ -1756,8 +1756,7 @@ siHostnameAddrMatch(int family, pointer addr, int len,
>       if (siAddrLen >= sizeof(hostname)) 
>           return FALSE;
>  
> -     strncpy(hostname, siAddr, siAddrLen);
> -     hostname[siAddrLen] = '\0';
> +     strlcpy(hostname, siAddr, siAddrLen + 1);
>  
>       if (getaddrinfo(hostname, NULL, NULL, &addresses) == 0) {
>           for (a = addresses ; a != NULL ; a = a->ai_next) {
> @@ -1786,8 +1785,7 @@ siHostnameAddrMatch(int family, pointer addr, int len,
>       if (siAddrLen >= sizeof(hostname)) 
>           return FALSE;
>  
> -     strncpy(hostname, siAddr, siAddrLen);
> -     hostname[siAddrLen] = '\0';
> +     strlcpy(hostname, siAddr, siAddrLen + 1);
>  
>       if ((hp = _XGethostbyname(hostname, hparams)) != NULL) {
>  #ifdef h_addr                                /* new 4.3bsd version of 
> gethostent */
> diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c
> index e102035..ff32fc3 100644
> --- a/xkb/ddxLoad.c
> +++ b/xkb/ddxLoad.c
> @@ -263,8 +263,7 @@ XkbDDXCompileKeymapByNames(       XkbDescPtr              
> xkb,
>              if (xkbDebugFlags)
>                  DebugF("[xkb] xkb executes: %s\n",buf);
>           if (nameRtrn) {
> -             strncpy(nameRtrn,keymap,nameRtrnLen);
> -             nameRtrn[nameRtrnLen-1]= '\0';
> +             strlcpy(nameRtrn,keymap,nameRtrnLen);
>           }
>              free(buf);
>           return TRUE;
> @@ -319,8 +318,7 @@ FILE *    file;
>      }
>      else file= NULL;
>      if ((fileNameRtrn!=NULL)&&(fileNameRtrnLen>0)) {
> -     strncpy(fileNameRtrn,buf,fileNameRtrnLen);
> -     buf[fileNameRtrnLen-1]= '\0';
> +     strlcpy(fileNameRtrn,buf,fileNameRtrnLen);
>      }
>      return file;
>  }
> diff --git a/xkb/maprules.c b/xkb/maprules.c
> index f940899..a14fbbb 100644
> --- a/xkb/maprules.c
> +++ b/xkb/maprules.c
> @@ -250,8 +250,7 @@ get_index(char *str, int *ndx)
>         *ndx = -1;
>         return end + 1;
>     }
> -   strncpy(ndx_buf, str, end - str);
> -   ndx_buf[end - str] = '\0';
> +   strlcpy(ndx_buf, str, 1 + end - str);
>     *ndx = atoi(ndx_buf);
>     return end + 1;
>  }
> diff --git a/xkb/xkbtext.c b/xkb/xkbtext.c
> index 9f49d59..1ba10a1 100644
> --- a/xkb/xkbtext.c
> +++ b/xkb/xkbtext.c
> @@ -81,8 +81,7 @@ char        *rtrn,*tmp;
>       if (len>BUFFER_SIZE)
>           len= BUFFER_SIZE-2;
>       rtrn= tbGetBuffer(len);
> -     strncpy(rtrn,atmstr,len);
> -     rtrn[len]= '\0';
> +     strlcpy(rtrn,atmstr,len);
>      }
>      else {
>       rtrn= tbGetBuffer(1);
_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to