]> code.bitgloo.com Git - clyne/gamedev.git/commitdiff
fixed malloc crash
authorClyne Sullivan <tullivan99@gmail.com>
Sun, 18 Oct 2015 23:20:43 +0000 (19:20 -0400)
committerClyne Sullivan <tullivan99@gmail.com>
Sun, 18 Oct 2015 23:20:43 +0000 (19:20 -0400)
src/Quest.cpp

index 8aea00641293f796cd215edf4ebb3188df7d93fd..2eed1ae501dd13ed7d2fddff575565c894d8db2e 100644 (file)
@@ -14,9 +14,21 @@ const Quest QuestList[TOTAL_QUESTS]={
 \r
 };\r
 \r
+// Trust nobody\r
+#define STRLEN_MIN 16\r
+\r
+unsigned int safe_strlen(const char *s){\r
+       unsigned int size=0;\r
+       while(s[size])size++;\r
+       if(size<STRLEN_MIN)return STRLEN_MIN;\r
+       else return size;\r
+}\r
+\r
 Quest::Quest(const char *t,const char *d,struct item_t r){\r
-       strcpy((title=(char *)malloc(strlen(t))),t);\r
-       strcpy((desc =(char *)malloc(strlen(d))),d);\r
+       title=(char *)calloc(safe_strlen(t),sizeof(char));\r
+       desc=(char *)calloc(safe_strlen(d),sizeof(char));\r
+       strcpy(title,t);\r
+       strcpy(desc,d);\r
        memcpy(&reward,&r,sizeof(struct item_t));\r
 }\r
 \r