Skip to content

local directories are leaked to binary #185

Open
@iHnR

Description

@iHnR

Details

system: pop-os 22.04
cargo version: cargo 1.70.0 (ec8a8a0ca 2023-04-25)
jack version: 0.11.4

Description

I found by peeking inside the compiled binary for my files that my full user path is exposed in several places. This also happens when building in --release mode.

I understand these could be present in the debug build but should probably not be there in the release build.

I believe it's a jack problem as I don't have this issue with other libraries.

Reproduce

  1. run cargo new <project-name> && cd <project-name> && cargo add jack
  2. Add the following to main.rs.
use jack;

fn main() {
    // Define the jack device
    let (_client, _status) =
        match jack::Client::new("SimpleSynth", jack::ClientOptions::NO_START_SERVER) {
            Ok((_client, _status)) => (_client, _status),
            Err(some_error) => panic!("{some_error}"),
        };
}
  1. Run cargo build --release
  2. run strings target/release/<project-name> | grep <username>

Examples

Here are the lines I found in my executable. (username replaced)

called `Result::unwrap()` on an `Err` value/home/<username>/.cargo/registry/src/index.crates.io-6f17d22bba15001f/jack-0.11.4/src/client/client_impl.rsfailed to parse JACK error: jack::client::client_impl
UnknownErrorRingbufferCreateFailedClientIsNoLongerAliveWeakFunctionNotFoundTimeErrorSetBufferSizeErrorPortRegistrationErrorPortNamingErrorPortMonitorErrorPortDisconnectionErrorPortConnectionErrorPortAlreadyConnectedPortAliasErrorNotEnoughSpaceInvalidDeactivationFreewheelErrorClientErrorClientDeactivationErrorClientActivationErrorCallbackRegistrationErrorCallbackDeregistrationErrorLibraryErrorPoisonError/home/<username>/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/src/inline_lazy.rs | FAILUREINVALID_OPTIONNAME_NOT_UNIQUESERVER_STARTEDSERVER_FAILEDSERVER_ERRORNO_SUCH_CLIENTLOAD_FAILUREINIT_FAILURESHM_FAILUREVERSION_ERRORBACKEND_ERRORCLIENT_ZOMBIE0x(empty)
/home/<username>/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/src/inline_lazy.rs
called `Result::unwrap()` on an `Err` valueLoading jack from .libjack.so.0jack_sys/home/<username>/.cargo/registry/src/index.crates.io-6f17d22bba15001f/jack-sys-0.5.1/src/lib.rs/home/<username>/Documents/Programming/Rust/show_problem/target/release/build/jack-sys-a0cf6b8b22143969/out/functions.rsjack_release_timebasejack_get_cycle_timesjack_set_sync_callbackjack_set_sync_timeoutjack_set_timebase_callbackjack_transport_locatejack_transport_queryjack_get_current_transport_framejack_client_has_session_callbackjack_ringbuffer_get_write_vectorjack_transport_repositionjack_transport_startjack_transport_stopjack_get_transport_infojack_set_transport_infojack_client_openjack_is_realtimejack_thread_waitjack_on_shutdownjack_client_newjack_client_closejack_client_name_sizejack_get_client_namejack_get_uuid_for_client_namejack_get_client_name_by_uuidjack_internal_client_newjack_internal_client_closejack_activatejack_deactivatejack_get_client_pidjack_cycle_waitjack_cycle_signaljack_set_process_threadjack_set_thread_init_callbackjack_on_info_shutdownjack_set_process_callbackjack_set_freewheel_callbackjack_set_buffer_size_callbackjack_get_sample_ratejack_set_sample_rate_callbackjack_set_client_registration_callbackjack_set_port_registration_callbackjack_set_port_connect_callbackjack_set_port_rename_callbackjack_set_graph_order_callbackjack_set_xrun_callbackjack_set_latency_callbackjack_set_freewheeljack_set_buffer_sizejack_get_buffer_sizejack_engine_takeover_timebasejack_cpu_loadjack_port_registerjack_port_unregisterjack_port_get_bufferjack_port_uuidjack_port_namejack_port_short_namejack_port_flagsjack_port_typejack_port_type_idjack_port_is_minejack_port_connectedjack_port_connected_tojack_port_get_connectionsjack_port_get_all_connectionsjack_port_tiejack_port_untiejack_port_set_namejack_port_set_aliasjack_port_unset_aliasjack_port_get_aliasesjack_port_request_monitorjack_port_request_monitor_by_namejack_port_ensure_monitorjack_port_monitoring_inputjack_connectjack_disconnectjack_port_disconnectjack_port_name_sizejack_port_type_sizejack_port_type_get_buffer_sizejack_port_set_latencyjack_port_get_latency_rangejack_port_set_latency_rangejack_recompute_total_latenciesjack_port_get_latencyjack_port_get_total_latencyjack_recompute_total_latencyjack_get_portsjack_port_by_namejack_port_by_idjack_frames_since_cycle_startjack_frame_timejack_last_frame_timejack_frames_to_timejack_time_to_framesjack_get_timejack_set_error_functionjack_set_info_functionjack_freejack_client_real_time_priorityjack_client_max_real_time_priorityjack_set_session_callbackjack_session_replyjack_session_event_freejack_client_get_uuidjack_session_notifyjack_session_commands_freejack_reserve_client_namejackctl_setup_signalsjackctl_wait_signalsjackctl_server_createjackctl_server_destroyjackctl_server_openjackctl_server_startjackctl_server_stopjackctl_server_closejackctl_server_get_drivers_listjackctl_server_get_parametersjackctl_server_get_internals_listjackctl_server_load_internaljackctl_server_unload_internaljackctl_server_add_slavejackctl_server_remove_slavejackctl_server_switch_masterjackctl_driver_get_namejackctl_driver_get_typejackctl_driver_get_parametersjackctl_driver_params_parsejackctl_internal_get_namejackctl_internal_get_parametersjackctl_parameter_get_namejackctl_parameter_get_short_descriptionjackctl_parameter_get_long_descriptionjackctl_parameter_get_typejackctl_parameter_get_idjackctl_parameter_is_setjackctl_parameter_resetjackctl_parameter_get_valuejackctl_parameter_set_valuejackctl_parameter_get_default_valuejackctl_parameter_has_range_constraintjackctl_parameter_has_enum_constraintjackctl_parameter_get_enum_constraints_countjackctl_parameter_get_enum_constraint_valuejackctl_parameter_get_enum_constraint_descriptionjackctl_parameter_get_range_constraintjackctl_parameter_constraint_is_strictjackctl_parameter_constraint_is_fake_valuejack_set_propertyjack_get_propertyjack_free_descriptionjack_get_propertiesjack_get_all_propertiesjack_remove_propertyjack_remove_propertiesjack_remove_all_propertiesjack_set_property_change_callbackjack_get_internal_client_namejack_internal_client_handlejack_internal_client_loadjack_internal_client_unloadjack_get_max_delayed_usecsjack_get_xrun_delayed_usecsjack_reset_max_delayed_usecsjack_midi_get_event_countjack_midi_event_getjack_midi_clear_bufferjack_midi_max_event_sizejack_midi_event_reservejack_midi_event_writejack_midi_get_lost_event_countjack_ringbuffer_createjack_ringbuffer_freejack_ringbuffer_get_read_vectorjack_ringbuffer_readjack_ringbuffer_peekjack_ringbuffer_read_advancejack_ringbuffer_read_spacejack_ringbuffer_mlockjack_ringbuffer_resetjack_ringbuffer_writejack_ringbuffer_write_advancejack_ringbuffer_write_spacejack_uuid_to_indexjack_uuid_comparejack_uuid_copyjack_uuid_clearjack_uuid_parsejack_uuid_unparsejack_uuid_empty/home/<username>/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/src/inline_lazy.rs
/home/<username>/.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.19/src/lib.rskey-value support is experimental and must be enabled using the `kv_unstable` feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions