rem: return -8;
context: int val2str(db_val_t* _v, char* _s, int* _len){	int l;	char* old_s;#ifdef PARANOID	if ((!_v) || (!_s) || (!_len) || (!*_len)) {		LOG(L_ERR, "val2str(): Invalid parameter value\n");		return -1;	}#endif	if (VAL_NULL(_v)) {		*_len = snprintf(_s, *_len, "NULL");		return 0;	}		switch(VAL_TYPE(_v)) {	case DB_INT:		if (int2str(VAL_INT(_v), _s, _len) < 0) {			LOG(L_ERR, "val2str(): Error while converting string to int\n");			return -2;		} else {			return 0;		}		break;	case DB_DOUBLE:		if (double2str(VAL_DOUBLE(_v), _s, _len) < 0) {			LOG(L_ERR, "val2str(): Error while converting string to double\n");			return -3;		} else {			return 0;		}		break;	case DB_STRING:		l = strlen(VAL_STRING(_v));		if (*_len < (l + 3)) {			LOG(L_ERR, "val2str(): Destination buffer too short\n");			return -4;		} else {			*_s++ = '\'';			memcpy(_s, VAL_STRING(_v), l);			*(_s + l) = '\'';			*(_s + l + 1) = '\0'; /* FIXME */			*_len = l + 2;			return 0;		}		break;	case DB_STR:		l = VAL_STR(_v).len;		if (*_len < (l + 3)) {			LOG(L_ERR, "val2str(): Destination buffer too short\n");			return -5;		} else {			*_s++ = '\'';			memcpy(_s, VAL_STR(_v).s, l);			*(_s + l) = '\'';			*(_s + l + 1) = '\0';			*_len = l + 2;			return 0;		}		break;	case DB_DATETIME:		if (time2str(VAL_TIME(_v), _s, _len) < 0) {			LOG(L_ERR, "val2str(): Error while converting string to time_t\n");			return -6;		} else {			return 0;		}		break;	case DB_BLOB:		l = VAL_BLOB(_v).len;		if (*_len < (l * 2 + 3)) {			LOG(L_ERR, "val2str(): Destination buffer too short\n");			return -7;		} else {			old_s = _s;			*_s++ = '\'';			_s += mysql_escape_string(_s, VAL_STR(_v).s, l);			*_s++ = '\'';			*_s = '\0';			*_len = _s - old_s;			return 0;		}					break;	default:		DBG("val2str(): Unknow data type\n");		return -7;	}	return -8;}