[#7809] uninit bug in yaml/emitter.c — "Pat Eyler" <rubypate@...>
During our hacking night, we also looked at an UNINIT bug in yaml/emitter.c
[#7813] :!~ not a symbol — noreply@...
Bugs item #4344, was opened at 2006-05-03 17:41
[#7818] (security-related) patch to ALLOC macros to prevent integer overflow bugs — "Dominique Brezinski" <dominique.brezinski@...>
While fixing the integer overflow in rb_ary_fill(), it occurred to me
[#7833] segfault on Proc#call after setting a trace_func — Mauricio Fernandez <mfp@...>
$ cat bug2.rb
[#7843] Possible YAMl bug in 1.8.4 — Damphyr <damphyr@...>
OK, while parsing the td2 data from the ruby-lang website we stumbled on
Its probably a bug. I'm not familiar with the specifics, but Ruby
[#7858] Ruby threads working with native threads — "Francis Cianfrocca" <garbagecat10@...>
I recently wrote a network-event extension for Ruby ("eventmachine" in
[#7865] Strange interactions between Struct and 'pp' — noreply@...
Bugs item #4457, was opened at 2006-05-12 17:13
[#7872] Nonblocking socket-connect — "Francis Cianfrocca" <garbagecat10@...>
All, I needed a nonblocking socket connect for my asynchronous-event
In article <3a94cf510605140559l7baa0205le341dac4f47d424b@mail.gmail.com>,
How about introducing the method Socket#set_nonblocking, or alternatively
Hi,
Well, it's ok then. I'm comfortable adding in the nonblocking
Hi,
How about Socket#nbconnect and Socket#nbaccept?
On 5/15/06, Francis Cianfrocca <garbagecat10@gmail.com> wrote:
In article <1147709691.180288.28647.nullmailer@x31.priv.netlab.jp>,
[#7881] Segfault on x86_64 when built with -O0 in CFLAGS — noreply@...
Bugs item #4491, was opened at 2006-05-16 12:46
[#7882] reproducible bug in DRb on OSX — cremes.devlist@...
I've been tearing my hair out the last few days trying to track down
[#7909] SCRIPT_LINES__ issue when loading a file more than once — Mauricio Fernandez <mfp@...>
SCRIPT_LINES__ is an obscure feature very few people care about, but I happen
On Fri, May 19, 2006 at 06:46:05PM +0900, Mauricio Fernandez wrote:
Hi,
[#7923] Nonblocking accept — "Francis Cianfrocca" <garbagecat10@...>
Thanks to the Matz and colleagues for adding the *_nonblock functions. They
[#7928] set_trace_func: binding has wrong self value for return events — =?ISO-8859-15?Q?Florian_Gro=DF?= <florgro@...>
Moin.
Florian Growrote:
Coverity CID 14 15 Patch
Both errors stem from the possibility of returning a -1, which signals an error condition. I fixed it so that it silently returns without possibly doing an invalid memory read. Is there a more appropriate way to signal an error or throw an exception in these cases? Comments suggestions welcome. Kevin Tew
Attachments (1)
Index: regparse.c
===================================================================
RCS file: /src/ruby/regparse.c,v
retrieving revision 1.25
diff -u -r1.25 regparse.c
--- regparse.c 23 Mar 2006 12:08:08 -0000 1.25
+++ regparse.c 6 May 2006 16:58:46 -0000
@@ -2152,38 +2152,41 @@
pnum = popular_qualifier_num(p);
cnum = popular_qualifier_num(c);
- switch(ReduceTypeTable[cnum][pnum]) {
- case RQ_DEL:
- *p = *c;
- break;
- case RQ_A:
- p->target = c->target;
- p->lower = 0; p->upper = REPEAT_INFINITE; p->greedy = 1;
- break;
- case RQ_AQ:
- p->target = c->target;
- p->lower = 0; p->upper = REPEAT_INFINITE; p->greedy = 0;
- break;
- case RQ_QQ:
- p->target = c->target;
- p->lower = 0; p->upper = 1; p->greedy = 0;
- break;
- case RQ_P_QQ:
- p->target = cnode;
- p->lower = 0; p->upper = 1; p->greedy = 0;
- c->lower = 1; c->upper = REPEAT_INFINITE; c->greedy = 1;
- return ;
- break;
- case RQ_PQ_Q:
- p->target = cnode;
- p->lower = 0; p->upper = 1; p->greedy = 1;
- c->lower = 1; c->upper = REPEAT_INFINITE; c->greedy = 0;
- return ;
- break;
- case RQ_ASIS:
- p->target = cnode;
- return ;
- break;
+ if (pnum >= 0 && cnum >= 0 )
+ {
+ switch(ReduceTypeTable[cnum][pnum]) {
+ case RQ_DEL:
+ *p = *c;
+ break;
+ case RQ_A:
+ p->target = c->target;
+ p->lower = 0; p->upper = REPEAT_INFINITE; p->greedy = 1;
+ break;
+ case RQ_AQ:
+ p->target = c->target;
+ p->lower = 0; p->upper = REPEAT_INFINITE; p->greedy = 0;
+ break;
+ case RQ_QQ:
+ p->target = c->target;
+ p->lower = 0; p->upper = 1; p->greedy = 0;
+ break;
+ case RQ_P_QQ:
+ p->target = cnode;
+ p->lower = 0; p->upper = 1; p->greedy = 0;
+ c->lower = 1; c->upper = REPEAT_INFINITE; c->greedy = 1;
+ return ;
+ break;
+ case RQ_PQ_Q:
+ p->target = cnode;
+ p->lower = 0; p->upper = 1; p->greedy = 1;
+ c->lower = 1; c->upper = REPEAT_INFINITE; c->greedy = 0;
+ return ;
+ break;
+ case RQ_ASIS:
+ p->target = cnode;
+ return ;
+ break;
+ }
}
c->target = NULL_NODE;
@@ -4532,32 +4535,34 @@
nestq_num = popular_qualifier_num(qn);
targetq_num = popular_qualifier_num(qnt);
+ if ( nestq_num >= 0 && targetq_num >= 0 )
+ {
+ switch(ReduceTypeTable[targetq_num][nestq_num]) {
+ case RQ_ASIS:
+ break;
+
+ case RQ_DEL:
+ if (onig_verb_warn != onig_null_warn) {
+ onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,
+ env->pattern, env->pattern_end,
+ (UChar* )"redundant nested repeat operator");
+ (*onig_verb_warn)((char* )buf);
+ }
+ goto warn_exit;
+ break;
- switch(ReduceTypeTable[targetq_num][nestq_num]) {
- case RQ_ASIS:
- break;
-
- case RQ_DEL:
- if (onig_verb_warn != onig_null_warn) {
- onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,
- env->pattern, env->pattern_end,
- (UChar* )"redundant nested repeat operator");
- (*onig_verb_warn)((char* )buf);
- }
- goto warn_exit;
- break;
-
- default:
- if (onig_verb_warn != onig_null_warn) {
- onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,
- env->pattern, env->pattern_end,
- (UChar* )"nested repeat operator %s and %s was replaced with '%s'",
- PopularQStr[targetq_num], PopularQStr[nestq_num],
- ReduceQStr[ReduceTypeTable[targetq_num][nestq_num]]);
- (*onig_verb_warn)((char* )buf);
+ default:
+ if (onig_verb_warn != onig_null_warn) {
+ onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,
+ env->pattern, env->pattern_end,
+ (UChar* )"nested repeat operator %s and %s was replaced with '%s'",
+ PopularQStr[targetq_num], PopularQStr[nestq_num],
+ ReduceQStr[ReduceTypeTable[targetq_num][nestq_num]]);
+ (*onig_verb_warn)((char* )buf);
+ }
+ goto warn_exit;
+ break;
}
- goto warn_exit;
- break;
}
}