p-quic / pquic

The PQUIC implementation, a framework that enables QUIC clients and servers to dynamically exchange protocol plugins that extend the protocol on a per-connection basis
https://pquic.org
MIT License
126 stars 20 forks source link

Error in running multipath_rtt_cond.plugin after commit #22

Open shkp4j opened 3 years ago

shkp4j commented 3 years ago

Could you check if commit https://github.com/p-quic/pquic/commit/e08ae8f6482b09bcdf32fcbaadec63b3085df0ae is causing errors when running plugin multipath_rtt_cond.plugin / also multipath_rr_cond.plugin

picoquic/transport.c int prepare_plugin_transport_extensions(picoquic_cnx_t cnx, uint8_t bytes, size_t bytes_max) { ... fprintf(stderr, "cnx->protoop_inputv[0]: %p\n", &cnx->protoop_inputv[0]); _cnx->protoop_inputv[0] = (protoop_argt) &value; ... } prints out
cnx->protoop_inputv[0]: (nil) and throws an error Address 0x0 is not stack'd, malloc'd or (recently) free'd

shkp4j commented 3 years ago

plugin.c does initialize, but then clean up immediately.

protoop_arg_t plugin_run_protoop_internal(picoquic_cnx_t cnx, const protoop_params_t pp) {

cnx->protoop_inputv = pp->inputv;   //1302 
fprintf(stderr, "plugin.c | plugin_run_protoop_internal() line 1302, cnx->protoop_inputv[0]: %p\n", &cnx->protoop_inputv[0]);

cnx->protoop_inputv = caller_inputv;
fprintf(stderr, "plugin.c | plugin_run_protoop_internal() cleanup: cnx->protoop_inputv[0]: %p\n", &cnx->protoop_inputv[0]);

.. }

plugin.c | plugin_run_protoop_internal() line 1302, cnx->protoop_inputv[0]: 0x1ffeffdfd0 plugin.c | plugin_run_protoop_internal() cleanup: cnx->protoop_inputv[0]: (nil) plugin.c | plugin_run_protoop_internal() line 1302, cnx->protoop_inputv[0]: 0x1ffeffdfd0 plugin.c | plugin_run_protoop_internal() cleanup: cnx->protoop_inputv[0]: (nil) plugin.c | plugin_run_protoop_internal() line 1302, cnx->protoop_inputv[0]: 0x1ffeffdfd0 plugin.c | plugin_run_protoop_internal() cleanup: cnx->protoop_inputv[0]: (nil)

mpiraux commented 3 years ago

Oh damn, I had a fix for that since months but it didn't make it here. Here it is: 841c82289b23d32c28723a0175654ecc6baeae08.