limits [was: [cvs] ... token.c]

David Relson <[email protected]>
Newsgroups gmane.mail.bogofilter.devel
Organization Osage Software Systems, Inc.
Message-ID <[email protected]>
On Wed, 06 Apr 2005 00:31:31 +0200
Matthias Andree wrote:

> David Relson <[email protected]> writes:
> 
> > +    uint p = (prefix == NULL) ? 0 : prefix->leng;
> > +    uint l = leng + p;
> > +
> > +    if (l >= token_size)
> > +	l = token_size - p;
> > +
> > +    token->leng = l;
> > +
> > +    /* copy prefix, if there is one */
> > +    if (prefix != NULL)
> > +	memcpy(token->text, prefix->text, p);
> > +
> > +    memcpy(token->text + p, text, l-p);		/* include nul terminator */
> > +    token->text[token->leng] = '\0';		/* ensure nul termination */
> 
> What is the upper limit here?
> 
> IOW, against what limit does the actual prefix length count?
> 
> Do we limit against MAXTOKENLEN or something a lot larger?

prefix->leng is the length of the current prefix.  At present the
prefixes are:

"to:", "from:", "rtrn:", "subj:", "rcvd:", "head:", and "mime:"

and the other relevant code is:

#define MAXTOKENLEN	  30
#define	MAX_PREFIX_LEN 	  5		/* maximim length of prefix     */
#define	MSG_COUNT_PADDING 2 * 10	/* space for 2 10-digit numbers */

byte yylval_text[MAXTOKENLEN + MAX_PREFIX_LEN + MSG_COUNT_PADDING + D];
static word_t yylval = { 0, yylval_text };

The limit for yylval is sizeof(yylval_text) which computes to 55.

When we get serious about unicode and iconv, we'll need to make some
changes.  At present, each character of a message takes 1 byte of
storage, so the single MAXTOKENLEN value is sufficient.  With unicode
we'll need different counts for characters and storage, for example
MAXTOKENCHARS and MAXTOKENBYTES.

_______________________________________________
Bogofilter-dev mailing list
[email protected]
http://www.bogofilter.org/mailman/listinfo/bogofilter-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.