# Limited\_big\_rand $B$G(B SEGV $B$,H/@8$9$k2DG=@-(B

**URL:** <https://www.ruby-forum.com/t/limited-big-rand-b-g-b-segv-b-h-8-9-k2dg-b/127879>\
**Category:** Development\
**Created:** [February 2, 2008, 12:44am UTC](https://www.ruby-forum.com/t/limited-big-rand-b-g-b-segv-b-h-8-9-k2dg-b/127879 "2008-02-02T00:44:35Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kenta\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/b5a626/32.png) [@Kenta\_M](https://www.ruby-forum.com/u/Kenta_M)\
**Post date:** [February 2, 2008, 12:44am UTC](https://www.ruby-forum.com/t/limited-big-rand-b-g-b-segv-b-h-8-9-k2dg-b/127879/1 "2008-02-02T00:44:35Z")

</div>

e$B$`$i$?$G$9!%e(B

random.c e$B$GDj5A$5$l$F$$$ke(B limited\_big\_rand e$BFb$G!$e(B  
SIZEOF\_BDIGITS == 2 e$B$N$H$-$Ke(B Segmentation Fault  
e$B$,H/@8$9$k2DG=@-$,$"$j$^$9!%e(B  
e$B%a!\<%k$N:G8e$K=$@5%Q%C%A$rE:IU$7$^$9!%e(B

e$B$H$3$m$G!$e(B[ruby-dev:30954]  
e$B$+$i;O$^$kMp?t@8@.4o$N;EMM$NOC$,$H$F$b5$$K$J$C$F$$$^$9!%e(B  
e$B8=\>u$O$I$N$h$&$K$J$C$F$$$k$N$G$7$g$&!)8&5f$GMp?t$rNI$/;HMQ$9$k$N$G!$e(B  
e$B;d$b5DO@$K:.$\<$F$$$?$@$1$k$HBgJQ4r$7$$$G$9!%e(B

–  
Kenta M.  
OpenPGP FP = FA26 35D7 4F98 3498 0810 E0D5 F213 966F E9EB 0BCC

diff --git a/random.c b/random.c  
index 9bcc3b9…e59a0b2 100644  
— a/random.c  
+++ b/random.c  
@@ -386,10 +386,10 @@ limited\_big\_rand(struct RBignum \*limit)  
RBIGNUM\_SET\_SIGN(val, 1);  
#if SIZEOF\_BDIGITS == 2

# define BIG\_GET32(big,i) (RBIGNUM\_DIGITS(big)[(i)\*2] | \

- 

```
                      ((i)*2+1 < RBIGNUM_DIGITS(big) ?

```

(RBIGNUM\_DIGITS(big)[(i)\*2+1] \<\< 16) \

- 

```
                      ((i)*2+1 < RBIGNUM_LEN(big) ?

```

(RBIGNUM\_DIGITS(big)[(i)\*2+1] \<\< 16)   
: 0))

# define BIG\_SET32(big,i,d) ((RBIGNUM\_DIGITS(big)[(i)\*2] = (d) &

0xffff), \

- 

```
                        ((i)*2+1 < RBIGNUM_DIGITS(big) ?

```

(RBIGNUM\_DIGITS(big)[(i)\*2+1] = (d) \>\> 16) \

- 

```
                        ((i)*2+1 < RBIGNUM_LEN(big) ?

```

(RBIGNUM\_DIGITS(big)[(i)_2+1] = (d) \>\> 16)   
: 0))  
 #else  
/_ SIZEOF\_BDIGITS == 4 \*/

---

<div class="post-metadata">

**Author:** ![Kenta\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/b5a626/32.png) [@Kenta\_M](https://www.ruby-forum.com/u/Kenta_M)\
**Post date:** [February 2, 2008, 1:35am UTC](https://www.ruby-forum.com/t/limited-big-rand-b-g-b-segv-b-h-8-9-k2dg-b/127879/2 "2008-02-02T01:35:01Z")

</div>

In article [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
“Kenta M.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> random.c e$B$GDj5A$5$l$F$$$ke(B limited\_big\_rand e$BFb$G!$e(B  
> SIZEOF\_BDIGITS == 2 e$B$N$H$-$Ke(B Segmentation Fault e$B$,H/@8$9$k2DG=@-$,$"$j$^$9!%e(B  
> e$B%a!\<%k$N:G8e$K=$@5%Q%C%A$rE:IU$7$^$9!%e(B

e$B$?$7$+$K!#e(B  
e$B%3%\_%C%H$7$F$\*$-$^$7$?!#e(B

> e$B$H$3$m$G!$e(B[ruby-dev:30954] e$B$+$i;O$^$kMp?t@8@.4o$N;EMM$NOC$,$H$F$b5$$K$J$C$F$$$^$9!%e(B  
> e$B8=\>u$O$I$N$h$&$K$J$C$F$$$k$N$G$7$g$&!)8&5f$GMp?t$rNI$/;HMQ$9$k$N$G!$e(B  
> e$B;d$b5DO@$K:.$\<$F$$$?$@$1$k$HBgJQ4r$7$$$G$9!%e(B

e$B?J$a$k?M$,0l?M$b$$$J$1$l$P?J$^$J$$$H$$$&\>u67$G$9$+$M$'!#e(B
