[BACK]Return to mandocdb.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/mandocdb.c between version 1.142 and 1.143

version 1.142, 2014/04/23 16:34:50 version 1.143, 2014/04/23 19:09:16
Line 663  treescan(void)
Line 663  treescan(void)
                                 fsec[-1] = '\0';                                  fsec[-1] = '\0';
   
                         mlink = mandoc_calloc(1, sizeof(struct mlink));                          mlink = mandoc_calloc(1, sizeof(struct mlink));
                         strlcpy(mlink->file, path, sizeof(mlink->file));                          if (strlcpy(mlink->file, path,
                               sizeof(mlink->file)) >=
                               sizeof(mlink->file)) {
                                   say(path, "Filename too long");
                                   free(mlink);
                                   continue;
                           }
                         mlink->dform = dform;                          mlink->dform = dform;
                         mlink->dsec = dsec;                          mlink->dsec = dsec;
                         mlink->arch = arch;                          mlink->arch = arch;
Line 819  filescan(const char *file)
Line 825  filescan(const char *file)
                         say(file, "&stat");                          say(file, "&stat");
                         return;                          return;
                 }                  }
                 strlcpy(buf, file, sizeof(buf));                  if (strlcpy(buf, file, sizeof(buf)) >= sizeof(buf)) {
                           say(file, "Filename too long");
                           return;
                   }
                 start = strstr(buf, basedir) == buf ?                  start = strstr(buf, basedir) == buf ?
                     buf + strlen(basedir) + 1 : buf;                      buf + strlen(basedir) + 1 : buf;
         }          }
   
         mlink = mandoc_calloc(1, sizeof(struct mlink));          mlink = mandoc_calloc(1, sizeof(struct mlink));
         strlcpy(mlink->file, start, sizeof(mlink->file));          if (strlcpy(mlink->file, start, sizeof(mlink->file)) >=
               sizeof(mlink->file)) {
                   say(start, "Filename too long");
                   return;
           }
   
         /*          /*
          * First try to guess our directory structure.           * First try to guess our directory structure.
Line 973  mlinks_undupe(struct mpage *mpage)
Line 986  mlinks_undupe(struct mpage *mpage)
                         mpage->form = FORM_NONE;                          mpage->form = FORM_NONE;
                         goto nextlink;                          goto nextlink;
                 }                  }
                 if (strlcpy(buf, mlink->file, PATH_MAX) >= PATH_MAX) {                  (void)strlcpy(buf, mlink->file, sizeof(buf));
                         if (warnings)  
                                 say(mlink->file, "Filename too long");  
                         goto nextlink;  
                 }  
                 bufp = strstr(buf, "cat");                  bufp = strstr(buf, "cat");
                 assert(NULL != bufp);                  assert(NULL != bufp);
                 memcpy(bufp, "man", 3);                  memcpy(bufp, "man", 3);
                 if (NULL != (bufp = strrchr(buf, '.')))                  if (NULL != (bufp = strrchr(buf, '.')))
                         *++bufp = '\0';                          *++bufp = '\0';
                 strlcat(buf, mlink->dsec, PATH_MAX);                  (void)strlcat(buf, mlink->dsec, sizeof(buf));
                 if (NULL == ohash_find(&mlinks,                  if (NULL == ohash_find(&mlinks,
                     ohash_qlookup(&mlinks, buf)))                      ohash_qlookup(&mlinks, buf)))
                         goto nextlink;                          goto nextlink;
Line 2216  dbopen(int real)
Line 2225  dbopen(int real)
                 return(0);                  return(0);
         }          }
   
         if (strlcpy(tempfilename, "/tmp/mandocdb.XXXXXX",          (void)strlcpy(tempfilename, "/tmp/mandocdb.XXXXXX",
             sizeof(tempfilename)) >= sizeof(tempfilename)) {              sizeof(tempfilename));
                 exitcode = (int)MANDOCLEVEL_SYSERR;  
                 say("", "/tmp/mandocdb.XXXXXX: Filename too long");  
                 return(0);  
         }  
         if (NULL == mkdtemp(tempfilename)) {          if (NULL == mkdtemp(tempfilename)) {
                 exitcode = (int)MANDOCLEVEL_SYSERR;                  exitcode = (int)MANDOCLEVEL_SYSERR;
                 say("", "&%s", tempfilename);                  say("", "&%s", tempfilename);
                 return(0);                  return(0);
         }          }
         if (strlcat(tempfilename, "/" MANDOC_DB,          (void)strlcat(tempfilename, "/" MANDOC_DB,
             sizeof(tempfilename)) >= sizeof(tempfilename)) {              sizeof(tempfilename));
                 exitcode = (int)MANDOCLEVEL_SYSERR;  
                 say("", "%s/" MANDOC_DB ": Filename too long",  
                     tempfilename);  
                 return(0);  
         }  
         rc = sqlite3_open_v2(tempfilename, &db, ofl, NULL);          rc = sqlite3_open_v2(tempfilename, &db, ofl, NULL);
         if (SQLITE_OK != rc) {          if (SQLITE_OK != rc) {
                 exitcode = (int)MANDOCLEVEL_SYSERR;                  exitcode = (int)MANDOCLEVEL_SYSERR;

Legend:
Removed from v.1.142  
changed lines
  Added in v.1.143

CVSweb