ID |
Date |
Icon |
Author |
Author Email |
Category |
OS |
ELOG Version |
Subject |
925
|
Tue Feb 8 17:40:54 2005 |
| Emiliano Gabrielli | AlberT@SuperAlberT.it | Bug fix | All | 2.5.6 cvs | [patch]: fixed wrong extention check |
current version uses strstr() to check if the file has the expected ascii
text extension ... this is buggy becouse this way a file named
".txt_hidden_file" or "foo.config.dat" are both seen as .txt files.
the following patch fixes the problem, plz apply to cvs:
#######################################################################
--- elogd_orig.c 2005-02-03 16:46:10.000000000 +0100
+++ elogd_extchk_fix.c 2005-02-08 17:32:21.000000000 +0100
@@ -1160,6 +1160,28 @@
#define my_toupper(_c) ( ((_c)>='a' && (_c)<='z') ? ((_c)-'a'+'A') : (_c) )
+static BOOL chkext(const char *str, const char *ext)
+{
+ int extl, strl;
+ char c1, c2;
+
+ if (ext == NULL || str == NULL)
+ return FALSE;
+
+ extl = strlen(ext);
+ strl = strlen(str);
+ if (extl >= strl)
+ return FALSE;
+ str = str+strl-extl;
+ while (*str) {
+ c1 = *str++;
+ c2 = *ext++;
+ if (my_toupper(c1) != my_toupper(c2))
+ return FALSE;
+ }
+ return TRUE;
+}
+
BOOL strieq(const char *str1, const char *str2)
{
char c1, c2;
@@ -1168,6 +1190,8 @@
return TRUE;
if (str1 == NULL || str2 == NULL)
return FALSE;
+ if (strlen(str1)!=strlen(str2))
+ return FALSE;
while (*str1) {
c1 = *str1++;
@@ -13698,8 +13722,8 @@
("<tr><td colspan=%d class=\"attachment\">%s %d: <a
href=\"%s\">%s</a>\n",
colspan, loc("Attachment"), index + 1, ref,
attachment[index] + 14);
- if ((strstr(str, ".TXT") || strstr(str, ".ASC") ||
strstr(str, ".CFG")
- || strstr(str, ".CONF")
+ if ((chkext(str, ".TXT") || chkext(str, ".ASC") ||
chkext(str, ".CFG")
+ || chkext(str, ".CONF")
|| strchr(str, '.') == NULL) && show_attachments) {
/* display attachment */
rsprintf("</td></tr><tr><td colspan=%d
class=\"messagelist\"><pre>", colspan);
@@ -14779,7 +14803,7 @@
regex_t re_buf[MAX_N_ATTR + 1];
regmatch_t pmatch[10];
- /* redirect if enpty parameters */
+ /* redirect if empty parameters */
if (strstr(_cmdline, "=&")) {
while ((pt1 = strstr(_cmdline, "=&")) != NULL) {
pt2 = pt1;
####################################################################### |
934
|
Sat Feb 12 17:45:39 2005 |
| Stefan Ritt | stefan.ritt@psi.ch | Bug fix | All | 2.5.6 cvs | Re: [patch]: fixed wrong extention check | > current version uses strstr() to check if the file has the expected ascii
> text extension ... this is buggy becouse this way a file named
> ".txt_hidden_file" or "foo.config.dat" are both seen as .txt files.
I added your routine chkext() to the code, but actually use it differently. I
display now ASCII files not by their extension, but the code checks for each file
to contain non-printable characters. If it contains all printable letters, and does
not have the extension PDF, PS or EPS, it's shown inline. |
948
|
Wed Feb 16 08:48:52 2005 |
| Emiliano Gabrielli | AlberT@SuperAlberT.it | Bug fix | All | 2.5.6 cvs | Re: [patch]: fixed wrong extention check | > > current version uses strstr() to check if the file has the expected ascii
> > text extension ... this is buggy becouse this way a file named
> > ".txt_hidden_file" or "foo.config.dat" are both seen as .txt files.
>
> I added your routine chkext() to the code, but actually use it differently. I
> display now ASCII files not by their extension, but the code checks for each file
> to contain non-printable characters. If it contains all printable letters, and does
> not have the extension PDF, PS or EPS, it's shown inline.
I totally agree with you choice :-) |
953
|
Sat Feb 19 18:39:52 2005 |
| Heiko Scheit | h.scheit@mpi-hd.mpg.de | Bug fix | Linux | 2.5.7 | Problem with 'Show Attributes' option | There is a problem with the 'Show Attributes' option
causing the 'Format ...' options to be ignored.
See attachment for patch. |
954
|
Sun Feb 20 15:30:04 2005 |
| Stefan Ritt | stefan.ritt@psi.ch | Bug fix | Linux | 2.5.7 | Re: Problem with 'Show Attributes' option | > There is a problem with the 'Show Attributes' option
> causing the 'Format ...' options to be ignored.
>
> See attachment for patch.
Thanks a lot. I applied your patch and committed the changes to CVS. |
1072
|
Mon Apr 11 13:52:29 2005 |
| Heiko Scheit | h.scheit@mpi-hd.mpg.de | Bug fix | Linux | 2.5.7-1 | Segmentation fault when searching for empty regex | Segmentation fault when searching for empty regex
--------------------------------------------------
Searching for a regex like 'm*', which also includes zero 'm's, an empty
expression is found indefinitely in 'highlight_searchtext(...)', which
eventually results in an overflow of 'pt1'. The patch below fixes this
particular problem, but I would guess there are many other regular
expressions that would lead to an overflow of 'pt1', so its size
should definitely be checked before every 'strcpy(pt1,...)' and
the loop be aborted accordingly. (Or 'pt1' should be allocated
and enlarged dynamically.)
*** 14777,14782 ****
--- 14777,14784 ----
if (status != REG_NOMATCH) {
size = pmatch[0].rm_so;
+ if (size == 0) break; /* check for zero size -> infinite loop */
+
/* copy first part original text */
memcpy(pt1, pt, size);
pt1 += size;
***************
*** 14788,14795 ****
--- 14790,14799 ----
/* see also rsputs2(char* ) */
if (hidden)
+ /* need to check size of pt1 !!! */
strcpy(pt1,
"\001B\004style=\003color:black;background-color:#ffff66\003\002");
else
+ /* need to check size of pt1 !!! */
strcpy(pt1, "<B style=\"color:black;background-color:#ffff66\">");
pt1 += strlen(pt1);
***************
*** 14802,14814 ****
--- 14806,14821 ----
/* add coloring 2nd part */
if (hidden)
+ /* need to check size of pt1 !!! */
strcpy(pt1, "\001/B\002");
else
+ /* need to check size of pt1 !!! */
strcpy(pt1, "</B>");
pt1 += strlen(pt1);
}
} while (status != REG_NOMATCH);
+ /* need to check size of pt1 !!! */
strcpy(pt1, pt);
} |
1075
|
Mon Apr 11 21:22:25 2005 |
| Stefan Ritt | stefan.ritt@psi.ch | Bug fix | Linux | 2.5.7-1 | Re: Segmentation fault when searching for empty regex | I applied a similar fix like you proposed, just omit highlighting at all if I get a
zero length match. Changes committed to CVS. |
1220
|
Mon Jun 27 15:37:25 2005 |
| Emiliano Gabrielli | AlberT@SuperAlberT.it | Bug fix | Linux | 2.6.0beta2 | Re: [BUG] quick filter |
Emiliano Gabrielli wrote: |
Stefan Ritt wrote: |
Fixed in current CVS.
|
uhm... now the drop down menu is composed of only blancs ..
|
the following patch should solve the problem 
--- src/elogd.c 24 Jun 2005 20:22:33 -0000 1.685
+++ src/elogd.c 27 Jun 2005 13:34:05 -0000
@@ -15853,7 +15853,7 @@
if (comment[0] == 0)
strcpy(comment, attr_options[i][j]);
- for (i1=i2=0 ; i1<=(int)comment ; i1++) {
+ for (i1=i2=0 ; i1<=(int)strlen(comment) ; i1++) {
if (comment[i1] == '(') {
option[i2++] = '\\';
option[i2++] = '(';
|
|