mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* pack.c (pack_pack): check argument overrun for 'P'. based on a
patch by rucila <rucila at yahoo.cojp>. fixed: [ruby-dev:29182] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
05bc15b0ec
commit
fc4907f25d
2 changed files with 10 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
|||
Fri Aug 4 13:56:51 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* pack.c (pack_pack): check argument overrun for 'P'. based on a
|
||||
patch by rucila <rucila at yahoo.cojp>. fixed: [ruby-dev:29182]
|
||||
|
||||
Tue Aug 01 17:44:03 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* win32/win32.c (init_stdhandle): assign standard file handles.
|
||||
|
|
9
pack.c
9
pack.c
|
@ -364,7 +364,7 @@ num2i32(x)
|
|||
#else
|
||||
# define QUAD_SIZE 8
|
||||
#endif
|
||||
static char *toofew = "too few arguments";
|
||||
static const char toofew[] = "too few arguments";
|
||||
|
||||
static void encodes _((VALUE,char*,long,int));
|
||||
static void qpencode _((VALUE,VALUE,long));
|
||||
|
@ -460,8 +460,9 @@ pack_pack(ary, fmt)
|
|||
items = RARRAY(ary)->len;
|
||||
idx = 0;
|
||||
|
||||
#define THISFROM RARRAY(ary)->ptr[idx]
|
||||
#define NEXTFROM (items-- > 0 ? RARRAY(ary)->ptr[idx++] : (rb_raise(rb_eArgError, toofew),0))
|
||||
#define TOO_FEW (rb_raise(rb_eArgError, toofew), 0)
|
||||
#define THISFROM (items > 0 ? RARRAY(ary)->ptr[idx] : TOO_FEW)
|
||||
#define NEXTFROM (items-- > 0 ? RARRAY(ary)->ptr[idx++] : TOO_FEW)
|
||||
|
||||
while (p < pend) {
|
||||
if (RSTRING(fmt)->ptr + RSTRING(fmt)->len != pend) {
|
||||
|
@ -494,7 +495,7 @@ pack_pack(ary, fmt)
|
|||
}
|
||||
if (*p == '*') { /* set data length */
|
||||
len = strchr("@Xxu", type) ? 0 : items;
|
||||
p++;
|
||||
p++;
|
||||
}
|
||||
else if (ISDIGIT(*p)) {
|
||||
len = strtoul(p, (char**)&p, 10);
|
||||
|
|
Loading…
Add table
Reference in a new issue