# OxA: Division by zero

**URL:** <https://discourse.cataclysmdda.org/t/oxa-division-by-zero/5558>\
**Category:** The Garage\
**Created:** [March 23, 2014, 8:00am UTC](https://discourse.cataclysmdda.org/t/oxa-division-by-zero/5558 "2014-03-23T08:00:48Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![EditorRUS](https://avatars.discourse-cdn.com/v4/letter/e/9fc29f/32.png) [@EditorRUS](https://discourse.cataclysmdda.org/u/EditorRUS)\
**Post date:** [March 23, 2014, 8:00am UTC](https://discourse.cataclysmdda.org/t/oxa-division-by-zero/5558/1 "2014-03-23T08:00:48Z")

</div>

It’s hard a little to produce this bug, but i noticed it while i was loooking at source code:

[https://github.com/CleverRaven/Cataclysm-DDA/blob/master/src/disease.cpp](https://github.com/CleverRaven/Cataclysm-DDA/blob/master/src/disease.cpp)

[code]  
void manage\_fungal\_infection(player& p, disease& dis)  
{  
int bonus = p.health + (p.has\_trait(“POISRESIST”) ? 100 : 0);  
p.moves -= 10;  
p.mod\_str\_bonus(-1);  
p.mod\_dex\_bonus(-1);  
if (!dis.permanent) {  
if (dis.duration \> 3001) { // First hour symptoms  
if (one\_in(160 + bonus)) {  
handle\_cough§;  
}  
if (one\_in(100 + bonus)) {  
g-\>add\_msg\_if\_player(&p,_(“You feel nauseous.”));  
}  
if (one\_in(100 + bonus)) {  
g-\>add\_msg\_if\_player(&p,_(“You smell and taste mushrooms.”));  
}  
} else if (dis.duration \> 1) { // Five hours of worse symptoms  
if (one\_in(600 + bonus \* 3)) {  
g-\>add\_msg\_if\_player(&p, \_(“You spasm suddenly!”));  
p.moves -= 100;  
p.hurt(bp\_torso, -1, 5);  
}  
if (will\_vomit(p, 800 + bonus \* 4) || one\_in(2000 + bonus \* 10)) {  
g-\>add\_msg\_player\_or\_npc( &p, \_(“You vomit a thick, gray goop.”),  
\_(" vomits a thick, grey goop.") );

```
            int awfulness = rng(0,70);
            p.moves = -200;
            p.hunger += awfulness;
            p.thirst += awfulness;
            p.hurt(bp_torso, -1, awfulness / p.str_cur); // can't be healthy
        }
    } else {
        p.add_disease("fungus", 1, true, 1, 1, 0, -1);
    }[/code]

```

```auto
                int awfulness = rng(0,70);
                p.moves = -200;
                p.hunger += awfulness;
                p.thirst += awfulness;
                p.hurt(bp_torso, -1, awfulness / p.str_cur); // can't be healthy
```

There’s no:  
if (p.str\_cur == 0) { do something }  
and str\_cur CAN be 0, so, it will raise runtime error division by zero.

---

<div class="post-metadata">

**Author:** ![EditorRUS](https://avatars.discourse-cdn.com/v4/letter/e/9fc29f/32.png) [@EditorRUS](https://discourse.cataclysmdda.org/u/EditorRUS)\
**Post date:** [March 23, 2014, 5:43pm UTC](https://discourse.cataclysmdda.org/t/oxa-division-by-zero/5558/2 "2014-03-23T17:43:40Z")

</div>

[![](http://clip2net.com/clip/m192794/thumb640/1395596600-clip-621kb.jpg)](http://clip2net.com/s/74CQjI)

Proof

---

<div class="post-metadata">

**Author:** ![i2amroy](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/i2amroy/32/909_2.png) [@i2amroy](https://discourse.cataclysmdda.org/u/i2amroy)\
**Post date:** [March 23, 2014, 7:29pm UTC](https://discourse.cataclysmdda.org/t/oxa-division-by-zero/5558/3 "2014-03-23T19:29:02Z")

</div>

Thanks for reporting this, I’ve added a github issue and it should hopefully be fixed soon!

---

<div class="post-metadata">

**Author:** ![KA101](https://avatars.discourse-cdn.com/v4/letter/k/278dde/32.png) [@KA101](https://discourse.cataclysmdda.org/u/KA101)\
**Post date:** [March 24, 2014, 1:01am UTC](https://discourse.cataclysmdda.org/t/oxa-division-by-zero/5558/4 "2014-03-24T01:01:19Z")

</div>

Soyweiser fixed it. Thanks.

---

<div class="post-metadata">

**Author:** ![Soyweiser](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/soyweiser/32/37_2.png) [@Soyweiser](https://discourse.cataclysmdda.org/u/Soyweiser)\
**Post date:** [March 24, 2014, 11:44am UTC](https://discourse.cataclysmdda.org/t/oxa-division-by-zero/5558/5 "2014-03-24T11:44:29Z")

</div>

Thanks a lot for this extended bug report btw. Good find!
