Changeset 24407
- Timestamp:
- 10/18/13 11:52:01 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
titan/titan/global.h
r24405 r24407 3732 3732 return; 3733 3733 3734 len = strlen(value2); 3735 3736 if(len > MINMALLOC) 3737 { 3738 err("string to long"); 3739 return; 3740 } 3734 len = strlen(value2) + 1; 3741 3735 3742 3736 if(*value1 != NULL && maxlen == 0) 3743 3737 *maxlen = strlen(*value1); 3744 3738 3745 if(*value1 == NULL || *pos + len + 1> *maxlen)3746 { 3747 *maxlen = *maxlen + (MINMALLOC * 10);3739 if(*value1 == NULL || *pos + len > *maxlen) 3740 { 3741 *maxlen = *maxlen + len + (MINMALLOC * 10); 3748 3742 *value1 = realloc(*value1, *maxlen); 3749 3743 if(*value1 == NULL) … … 3754 3748 } 3755 3749 3756 memcpy(*value1 + *pos, value2, len + 1);3757 *pos = *pos + len;3750 memcpy(*value1 + *pos, value2, len); 3751 *pos = *pos + (len - 1); 3758 3752 } 3759 3753 … … 5541 5535 char* command(char* input) 5542 5536 { 5537 int maxlen = 0, pos = 0; 5543 5538 char* tmpstr = NULL, *fileline = NULL; 5544 5539 FILE *iopipe = NULL; … … 5562 5557 { 5563 5558 if(fgets(fileline, MINMALLOC, iopipe) != NULL) 5564 tmpstr = ostrcat(tmpstr, fileline, 1, 0); 5559 ostrcatbig(&tmpstr, fileline, &maxlen, &pos); 5560 } 5561 5562 if(pos > 0) 5563 { 5564 char* tmp = tmpstr; 5565 tmpstr = realloc(tmpstr, pos + 1); 5566 if(tmpstr == NULL) 5567 tmpstr = tmp; 5565 5568 } 5566 5569
Note: See TracChangeset
for help on using the changeset viewer.