Skip to content

local directories are leaked to binary #185

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