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

Diff for /mandoc/cgi.c between version 1.34 and 1.35

version 1.34, 2011/12/16 08:04:34 version 1.35, 2011/12/16 12:06:35
Line 752  pg_show(const struct req *req, char *path)
Line 752  pg_show(const struct req *req, char *path)
         size_t           sz;          size_t           sz;
         char            *sub;          char            *sub;
         char             file[MAXPATHLEN];          char             file[MAXPATHLEN];
         const char      *fn, *cp;          const char      *cp;
         int              rc;          int              rc, catm;
         unsigned int     vol, rec, mr;          unsigned int     vol, rec, mr;
         DB              *idx;          DB              *idx;
         DBT              key, val;          DBT              key, val;
Line 824  pg_show(const struct req *req, char *path)
Line 824  pg_show(const struct req *req, char *path)
         if (0 != (rc = (*idx->get)(idx, &key, &val, 0))) {          if (0 != (rc = (*idx->get)(idx, &key, &val, 0))) {
                 rc < 0 ? resp_baddb() : resp_error400();                  rc < 0 ? resp_baddb() : resp_error400();
                 goto out;                  goto out;
         }          } else if (0 == val.size) {
                   resp_baddb();
                   goto out;
           }
   
         cp = (char *)val.data;          cp = (char *)val.data;
           catm = 'c' == *cp++;
   
         if (NULL == (fn = memchr(cp, '\0', val.size)))          if (NULL == memchr(cp, '\0', val.size - 1))
                 resp_baddb();                  resp_baddb();
         else if (++fn - cp >= (int)val.size)  
                 resp_baddb();  
         else if (NULL == memchr(fn, '\0', val.size - (fn - cp)))  
                 resp_baddb();  
         else {          else {
                 file[(int)sz] = '\0';                  file[(int)sz] = '\0';
                 strlcat(file, "/", MAXPATHLEN);                  strlcat(file, "/", MAXPATHLEN);
                 strlcat(file, fn, MAXPATHLEN);                  strlcat(file, cp, MAXPATHLEN);
                 if (0 == strcmp(cp, "cat"))                  if (catm)
                         catman(req, file);                          catman(req, file);
                 else                  else
                         format(req, file);                          format(req, file);

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

CVSweb