rem: prefix = (char *)VAL_STRING(ROW_VALUES(row) + 4);
add: prefix = (char *)VAL_STRING(ROW_VALUES(row) + 5);
context: int reload_gws ( void ){    int q_len, i;    unsigned int ip_addr, port, prefix_len;    uri_type scheme;    uri_transport transport;    db_con_t* dbh;    char query[MAX_QUERY_SIZE], *prefix;    db_res_t* res;    db_row_t* row;    q_len = snprintf(query, MAX_QUERY_SIZE, "SELECT %.*s, %.*s, %.*s, %.*s, %.*s FROM %.*s",                     ip_addr_col.len, ip_addr_col.s,                     port_col.len, port_col.s,                     uri_scheme_col.len, uri_scheme_col.s,                     transport_col.len, transport_col.s,		     prefix_col.len, prefix_col.s,                     gw_table.len, gw_table.s);        if (q_len >= MAX_QUERY_SIZE) {	LOG(L_ERR, "lcr_reload_gws(): Too long database query\n");	return -1;    }    if (lcr_dbf.init==0){	    LOG(L_CRIT, "ERROR: lcr_db_ver: unbound database\n");	    return -1;    }    dbh=lcr_dbf.init(db_url.s);    if (dbh==0){	    LOG(L_ERR, "ERROR: reload_gws: unable to open database connection\n");	    return -1;    }    if (lcr_dbf.raw_query(dbh, query, &res) < 0) {	    LOG(L_ERR, "lcr_reload_gws(): Failed to query gw data\n");	    lcr_dbf.close(dbh);	    return -1;    }    if (RES_ROW_N(res) + 1 > MAX_NO_OF_GWS) {	    LOG(L_ERR, "reload_gws(): Too many gateways\n");	    lcr_dbf.free_result(dbh, res);	    lcr_dbf.close(dbh);	    return -1;    }        for (i = 0; i < RES_ROW_N(res); i++) {	row = RES_ROWS(res) + i;	if (VAL_NULL(ROW_VALUES(row)) == 1) {		LOG(L_ERR, "reload_gws(): IP address of GW is NULL\n");		lcr_dbf.free_result(dbh, res);		lcr_dbf.close(dbh);		return -1;	}      	ip_addr = (unsigned int)VAL_INT(ROW_VALUES(row));	if (VAL_NULL(ROW_VALUES(row) + 1) == 1) {		port = 0;	} else {		port = (unsigned int)VAL_INT(ROW_VALUES(row) + 1);	}	if (port > 65536) {	    LOG(L_ERR, "reload_gws(): Port of GW is too large: %u\n", port);	    lcr_dbf.free_result(dbh, res);	    lcr_dbf.close(dbh);	    return -1;	}	if (VAL_NULL(ROW_VALUES(row) + 2) == 1) {	    scheme = SIP_URI_T;	} else {	    scheme = (uri_type)VAL_INT(ROW_VALUES(row) + 2);	    if ((scheme != SIP_URI_T) && (scheme != SIPS_URI_T)) {		LOG(L_ERR, "reload_gws(): Unknown or unsupported URI scheme: %u\n", (unsigned int)scheme);		lcr_dbf.free_result(dbh, res);		lcr_dbf.close(dbh);		return -1;	    }	}	if (VAL_NULL(ROW_VALUES(row) + 3) == 1) {	    transport = PROTO_NONE;	} else {	    transport = (uri_transport)VAL_INT(ROW_VALUES(row) + 3);	    if ((transport != PROTO_UDP) && (transport != PROTO_TCP) &&		(transport != PROTO_TLS)) {		LOG(L_ERR, "reload_gws(): Unknown or unsupported transport: %u\n", (unsigned int)transport);		lcr_dbf.free_result(dbh, res);		lcr_dbf.close(dbh);		return -1;	    }	}	if (VAL_NULL(ROW_VALUES(row) + 4) == 1) {	    prefix_len = 0;	    prefix = (char *)0;	} else {	    prefix = (char *)VAL_STRING(ROW_VALUES(row) + 4);	    prefix_len = strlen(prefix);	    if (prefix_len > MAX_PREFIX_LEN) {		LOG(L_ERR, "reload_gws(): too long prefix\n");		lcr_dbf.free_result(dbh, res);		lcr_dbf.close(dbh);		return -1;	    }	}	if (*gws == gws_1) {		gws_2[i].ip_addr = ip_addr;		gws_2[i].port = port;		gws_2[i].scheme = scheme;		gws_2[i].transport = transport;		gws_2[i].prefix_len = prefix_len;		if (prefix_len)		    memcpy(&(gws_2[i].prefix[0]), prefix, prefix_len);	} else {		gws_1[i].ip_addr = ip_addr;		gws_1[i].port = port;		gws_1[i].scheme = scheme;		gws_1[i].transport = transport;		gws_1[i].prefix_len = prefix_len;		if (prefix_len)		    memcpy(&(gws_1[i].prefix[0]), prefix, prefix_len);	}    }        lcr_dbf.free_result(dbh, res);    lcr_dbf.close(dbh);    if (*gws == gws_1) {	    gws_2[i].ip_addr = 0;	    *gws = gws_2;    } else {	    gws_1[i].ip_addr = 0;	    *gws = gws_1;    }        return 1;}