[BACK]Return to cscope.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mg

Diff for /src/usr.bin/mg/cscope.c between version 1.12 and 1.13

version 1.12, 2016/01/19 11:13:02 version 1.13, 2016/01/19 11:15:39
Line 593 
Line 593 
 csexists(const char *cmd)  csexists(const char *cmd)
 {  {
        char fname[NFILEN], *dir, *path, *pathc, *tmp;         char fname[NFILEN], *dir, *path, *pathc, *tmp;
        int  cmdlen, dlen;         int  len, dlen;
   
        /* Special case if prog contains '/' */         /* Special case if prog contains '/' */
        if (strchr(cmd, '/')) {         if (strchr(cmd, '/')) {
Line 609 
Line 609 
                ewprintf("out of memory");                 ewprintf("out of memory");
                return (FALSE);                 return (FALSE);
        }         }
        cmdlen = strlen(cmd);  
        while ((dir = strsep(&path, ":")) != NULL) {         while ((dir = strsep(&path, ":")) != NULL) {
                if (*dir == '\0')                 if (*dir == '\0')
                         continue;                          continue;
Line 618 
Line 617 
                while (dir[dlen-1] == '/')                 while (dir[dlen-1] == '/')
                        dir[--dlen] = '\0';     /* strip trailing '/' */                         dir[--dlen] = '\0';     /* strip trailing '/' */
   
                if (dlen + 1 + cmdlen >= sizeof(fname))  {                 len = snprintf(fname, sizeof(fname), "%s/%s", dir, cmd);
                  if (len == -1 || len >= sizeof(fname)) {
                        dobeep();                         dobeep();
                        ewprintf("path too long");                         ewprintf("path too long");
                        goto cleanup;                         goto cleanup;
                }                 }
                snprintf(fname, sizeof(fname), "%s/%s", dir, cmd);  
                if(access(fname, F_OK) == 0) {                 if(access(fname, F_OK) == 0) {
                        free(pathc);                         free(pathc);
                        return (TRUE);                         return (TRUE);

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13