[*] Binary protection state of dbus-update-activation-environment
Partial RELRO No Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of dbus-update-activation-environment
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/dbus-update-activation-environment @ 0x10b84 */
| #include <stdint.h>
|
; (fcn) main () | int32_t main (int32_t argc, char ** argv) {
| int32_t var_0h;
| char ** var_ch;
| char * var_10h;
| int32_t var_14h;
| void * var_18h;
| void * ptr;
| void * s;
| int32_t var_24h;
| int32_t var_28h;
| int32_t var_30h;
| int32_t var_68h;
| int32_t var_a0h;
| int32_t var_d8h;
| int32_t var_110h;
| int32_t var_178h;
| int32_t var_17ch;
| r0 = argc;
| r1 = argv;
| /* [12] -r-x section size 2084 named .text */
0x00010b84 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00010b88 ldr r7, [pc, 0x550] | r7 = *(0x110dc);
0x00010b8c sub sp, sp, 0x17c |
0x00010b90 str r1, [sp, 0xc] | var_ch = r1;
0x00010b94 mov fp, r0 |
0x00010b98 mov r2, 0x10 | r2 = 0x10;
0x00010b9c mov r1, 0 | r1 = 0;
0x00010ba0 add r0, sp, 0x20 | r0 += s;
0x00010ba4 ldr sb, [pc, 0x538] | sb = "--systemd";
0x00010ba8 bl 0x10a7c | memset (r0, r1, r2);
0x00010bac mov r5, 0 | r5 = 0;
0x00010bb0 mov r3, 1 | r3 = 1;
0x00010bb4 mov sl, r5 | sl = r5;
0x00010bb8 mov r4, r3 | r4 = r3;
0x00010bbc mov r8, r3 | r8 = r3;
0x00010bc0 strb r3, [sp, 0x28] | var_28h = r3;
| label_1:
0x00010bc4 cmp r4, fp |
| if (r4 < fp) {
0x00010bc8 blt 0x10bf0 | goto label_10;
| }
0x00010bcc mov r4, fp | r4 = fp;
| do {
| label_0:
0x00010bd0 cmp r4, fp |
| if (r4 < fp) {
0x00010bd4 movge r0, 0 | r0 = 0;
| }
| if (r4 >= fp) {
0x00010bd8 andlt r0, sl, 1 | r0 = sl & 1;
| }
0x00010bdc cmp r0, 0 |
| if (r0 == 0) {
0x00010be0 beq 0x10c8c | goto label_11;
| }
0x00010be4 ldr r2, [pc, 0x4fc] | r2 = "--systemd";
0x00010be8 ldr r1, [pc, 0x4fc] | r1 = "dbus_update_activation_environment";
0x00010bec b 0x10c68 | goto label_12;
| label_10:
0x00010bf0 ldr r3, [sp, 0xc] | r3 = var_ch;
0x00010bf4 ldr r6, [r3, r4, lsl 2] | offset_0 = r4 << 2;
| r6 = *((r3 + offset_0));
0x00010bf8 ldrb r2, [r6] | r2 = *(r6);
0x00010bfc cmp r2, 0x2d |
0x00010c00 bne 0x10bd0 |
| } while (r2 != 0x2d);
0x00010c04 ldr r1, [pc, 0x4e4] | r1 = "_s:_error:___all_cannot_be_used_with_VAR_or_VARVAL_arguments";
0x00010c08 mov r0, r6 | r0 = r6;
0x00010c0c bl 0x10a64 | strcmp (r0, "_s:_error:___all_cannot_be_used_with_VAR_or_VARVAL_arguments");
0x00010c10 add r4, r4, 1 | r4++;
0x00010c14 cmp r0, 0 |
| if (r0 == 0) {
0x00010c18 beq 0x10bd0 | goto label_0;
| }
0x00010c1c mov r1, r7 | r1 = r7;
0x00010c20 mov r0, r6 | r0 = r6;
0x00010c24 bl 0x10a64 | r0 = strcmp (r0, r1);
0x00010c28 cmp r0, 0 |
| if (r0 == 0) {
0x00010c2c beq 0x10c7c | goto label_13;
| }
0x00010c30 mov r1, sb | r1 = sb;
0x00010c34 mov r0, r6 | r0 = r6;
0x00010c38 bl 0x10a64 | r0 = strcmp (r0, r1);
0x00010c3c cmp r0, 0 |
| if (r0 == 0) {
0x00010c40 beq 0x10c84 | goto label_14;
| }
0x00010c44 ldr r1, [pc, 0x4a8] | r1 = "__";
0x00010c48 mov r0, r6 | r0 = r6;
0x00010c4c bl 0x10a64 | r0 = strcmp (r0, "__");
0x00010c50 cmp r0, 0 |
| if (r0 != 0) {
0x00010c54 ldreq r3, [pc, 0x49c] | r3 = *(0x000110f8);
| }
| if (r0 == 0) {
0x00010c58 streq r8, [r3] | *(r3) = r8;
| goto label_15;
| }
| if (r0 == 0) {
| label_15:
0x00010c5c beq 0x10bc4 | goto label_1;
| }
0x00010c60 ldr r2, [pc, 0x480] | r2 = "--systemd";
0x00010c64 ldr r1, [pc, 0x490] | r1 = *(0x110f8);
| label_12:
0x00010c68 ldr r3, [pc, 0x490] | r3 = "%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n";
0x00010c6c ldr r0, [r3] | r0 = "%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n";
0x00010c70 bl 0x10b18 | fprintf ("%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n", r1, "--systemd", "%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n");
0x00010c74 mov r0, 0x40 | r0 = 0x40;
| do {
| label_9:
0x00010c78 bl 0x10b00 | exit (r0);
| label_13:
0x00010c7c mov sl, 1 | sl = 1;
0x00010c80 b 0x10bc4 | goto label_1;
| label_14:
0x00010c84 mov r5, 1 | r5 = 1;
0x00010c88 b 0x10bc4 | goto label_1;
| label_11:
0x00010c8c add r1, sp, 0x20 | r1 += s;
0x00010c90 bl 0x10b24 | r0 = dbus_bus_get ();
0x00010c94 subs r8, r0, 0 | r8 = r0 - 0;
| if (r8 != r0) {
0x00010c98 bne 0x10cbc | goto label_16;
| }
0x00010c9c ldr r0, [pc, 0x45c] |
0x00010ca0 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00010ca4 ldr r2, [pc, 0x43c] | r2 = "--systemd";
0x00010ca8 ldr r1, [pc, 0x454] | r1 = stderr;
0x00010cac ldr r0, [r0] | r0 = "%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n";
0x00010cb0 bl 0x10b18 | fprintf ("%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n", r1, "--systemd", r3);
0x00010cb4 mov r0, 0x47 | r0 = 0x47;
0x00010cb8 b 0x10c78 |
| } while (1);
| label_16:
0x00010cbc ldr r2, [pc, 0x444] | r2 = "%s: error: unable to connect to D-Bus: %s\n";
0x00010cc0 ldr r3, [pc, 0x444] | r3 = "org.freedesktop.DBus";
0x00010cc4 ldr r1, [pc, 0x444] | r1 = "UpdateActivationEnvironment";
0x00010cc8 mov r0, r2 | r0 = r2;
0x00010ccc bl 0x10ac4 | r0 = dbus_message_new_method_call ();
0x00010cd0 subs r6, r0, 0 | r6 = r0 - 0;
0x00010cd4 bne 0x10ce0 |
| while (r0 == 0) {
| label_2:
0x00010cd8 ldr r0, [pc, 0x434] | r0 = "/org/freedesktop/DBus";
0x00010cdc bl 0x11324 | fcn_00011324 ("/org/freedesktop/DBus");
0x00010ce0 add r1, sp, 0x30 | r1 += var_30h;
0x00010ce4 bl 0x10a04 | dbus_message_iter_init_append ();
0x00010ce8 add r3, sp, 0x68 | r3 += var_68h;
0x00010cec ldr r2, [pc, 0x424] | r2 = "updating environment";
0x00010cf0 mov r1, 0x61 | r1 = 0x61;
0x00010cf4 add r0, sp, 0x30 | r0 += var_30h;
0x00010cf8 bl 0x10a40 | r0 = dbus_message_iter_open_container ();
0x00010cfc cmp r0, 0 |
0x00010d00 beq 0x10cd8 |
| }
0x00010d04 cmp r5, 0 |
| if (r5 == 0) {
0x00010d08 beq 0x10d5c | goto label_17;
| }
0x00010d0c ldr r0, [pc, 0x408] | r0 = "_ss";
0x00010d10 bl 0x10b6c | r0 = getenv ("_ss");
0x00010d14 subs r2, r0, 0 | r2 = r0 - 0;
| if (r2 == r0) {
0x00010d18 beq 0x10d50 | goto label_18;
| }
0x00010d1c ldr r1, [pc, 0x3fc] | r1 = "XDG_RUNTIME_DIR";
0x00010d20 add r0, sp, 0x1c | r0 += ptr;
0x00010d24 bl 0x10ae8 | r0 = asprintf ()
0x00010d28 cmp r0, 0 |
| if (r0 < 0) {
0x00010d2c blt 0x10cd8 | goto label_2;
| }
0x00010d30 add r1, sp, 0x110 | r1 += var_110h;
0x00010d34 ldr r0, [sp, 0x1c] | r0 = ptr;
0x00010d38 bl 0x10a70 | r0 = stat64 ();
0x00010d3c mov r7, r0 | r7 = r0;
0x00010d40 ldr r0, [sp, 0x1c] | r0 = ptr;
0x00010d44 bl 0x10b60 | free (r0);
0x00010d48 cmp r7, 0 |
| if (r7 == 0) {
0x00010d4c beq 0x11008 | goto label_19;
| }
| label_18:
0x00010d50 ldr r0, [pc, 0x3cc] | r0 = "%s/systemd";
0x00010d54 bl 0x1127c | fcn_0001127c ();
0x00010d58 mov r5, 0 | r5 = 0;
| label_17:
0x00010d5c mov r7, r5 | r7 = r5;
0x00010d60 b 0x11048 | goto label_20;
| label_3:
0x00010d64 ldr r0, [sp, 0x10] | r0 = var_10h;
0x00010d68 mov r1, 0x3d | r1 = 0x3d;
0x00010d6c bl 0x10adc | r0 = strchr (r0, r1);
0x00010d70 cmp r0, 0 |
| if (r0 == 0) {
0x00010d74 movne r3, 0 | r3 = 0;
| }
| if (r0 == 0) {
0x00010d78 strbne r3, [r0], 1 | *(r0) = r3;
| r0++;
| }
| if (r0 == 0) {
0x00010d7c strne r0, [sp, 0x14] | var_14h = r0;
| }
| if (r0 == 0) {
0x00010d80 bne 0x10de0 |
0x00010d84 cmp sl, 0 |
| if (sl == 0) {
0x00010d88 movne r3, sb | r3 = sb;
| }
| if (sl == 0) {
0x00010d8c ldrne r2, [pc, 0x354] | r2 = "dbus_update_activation_environment";
| }
| if (sl == 0) {
0x00010d90 ldrne r1, [pc, 0x390] | r1 = "%s: warning: environment variable without '=': %s\n";
| }
| if (sl != 0) {
0x00010d94 bne 0x10edc | goto label_21;
| }
0x00010d98 mov r0, sb | r0 = sb;
0x00010d9c bl 0x10b6c | r0 = getenv (r0);
0x00010da0 cmp r0, 0 |
0x00010da4 str r0, [sp, 0x14] | var_14h = r0;
| if (r0 == 0) {
0x00010da8 beq 0x10ee8 | goto label_22;
| }
0x00010dac mov r1, sl | r1 = sl;
0x00010db0 bl 0x10a88 | r0 = dbus_validate_utf8 ();
0x00010db4 cmp r0, 0 |
| if (r0 != 0) {
0x00010db8 bne 0x10de0 | goto label_23;
| }
0x00010dbc ldr r2, [sp, 0x14] | r2 = var_14h;
0x00010dc0 ldr r0, [pc, 0x338] |
0x00010dc4 str r2, [sp] | *(sp) = r2;
0x00010dc8 mov r3, sb | r3 = sb;
0x00010dcc ldr r2, [pc, 0x314] | r2 = "--systemd";
0x00010dd0 ldr r1, [pc, 0x354] | r1 = "%s: warning: environment variable without '=': %s\n";
0x00010dd4 ldr r0, [r0] | r0 = "%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n";
0x00010dd8 bl 0x10b18 | fprintf ("%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n", "%s: warning: environment variable without '=': %s\n", r2, r3);
0x00010ddc b 0x10ee8 | goto label_22;
| }
| label_23:
0x00010de0 cmp r5, 0 |
| if (r5 == 0) {
0x00010de4 beq 0x10e20 | goto label_24;
| }
0x00010de8 ldrd r2, r3, [sp, 0x10] | __asm ("ldrd r2, r3, [var_10h]");
0x00010dec ldr r1, [pc, 0x33c] | r1 = "_s:_warning:_environment_variable_not_UTF_8:__s_s";
0x00010df0 add r0, sp, 0x18 | r0 += var_18h;
0x00010df4 bl 0x10ae8 | r0 = asprintf ()
0x00010df8 cmp r0, 0 |
| if (r0 < 0) {
0x00010dfc blt 0x10cd8 | goto label_2;
| }
0x00010e00 add r2, sp, 0x18 | r2 += var_18h;
0x00010e04 mov r1, 0x73 | r1 = 0x73;
0x00010e08 add r0, sp, 0xd8 | r0 += var_d8h;
0x00010e0c bl 0x10a4c | r0 = dbus_message_iter_append_basic ();
0x00010e10 cmp r0, 0 |
| if (r0 == 0) {
0x00010e14 beq 0x10cd8 | goto label_2;
| }
0x00010e18 ldr r0, [sp, 0x18] | r0 = var_18h;
0x00010e1c bl 0x10b60 | free (r0);
| label_24:
0x00010e20 add r3, sp, 0x110 | r3 += var_110h;
0x00010e24 mov r2, 0 | r2 = 0;
0x00010e28 mov r1, 0x65 | r1 = 0x65;
0x00010e2c add r0, sp, 0x68 | r0 += var_68h;
0x00010e30 bl 0x10a40 | r0 = dbus_message_iter_open_container ();
0x00010e34 cmp r0, 0 |
| if (r0 == 0) {
0x00010e38 beq 0x10cd8 | goto label_2;
| }
0x00010e3c add sb, sp, 0x178 | sb += var_178h;
0x00010e40 ldr r1, [sb, -0x168]! | r1 = var_10h;
0x00010e44 ldr r2, [sp, 0x14] | r2 = var_14h;
0x00010e48 ldr r0, [pc, 0x2e4] | r0 = "_s_s";
0x00010e4c bl 0x1127c | fcn_0001127c ();
0x00010e50 mov r2, sb | r2 = sb;
0x00010e54 mov r1, 0x73 | r1 = 0x73;
0x00010e58 add r0, sp, 0x110 | r0 += var_110h;
0x00010e5c bl 0x10a4c | r0 = dbus_message_iter_append_basic ();
0x00010e60 cmp r0, 0 |
| if (r0 == 0) {
0x00010e64 beq 0x10cd8 | goto label_2;
| }
0x00010e68 add r2, sp, 0x14 | r2 += var_14h;
0x00010e6c mov r1, 0x73 | r1 = 0x73;
0x00010e70 add r0, sp, 0x110 | r0 += var_110h;
0x00010e74 bl 0x10a4c | r0 = dbus_message_iter_append_basic ();
0x00010e78 cmp r0, 0 |
| if (r0 == 0) {
0x00010e7c beq 0x10cd8 | goto label_2;
| }
0x00010e80 add r1, sp, 0x110 | r1 += var_110h;
0x00010e84 add r0, sp, 0x68 | r0 += var_68h;
0x00010e88 bl 0x10b78 | r0 = dbus_message_iter_close_container ();
0x00010e8c cmp r0, 0 |
| if (r0 != 0) {
0x00010e90 bne 0x10ee8 | goto label_22;
| }
0x00010e94 b 0x10cd8 | goto label_2;
| label_6:
0x00010e98 cmp r4, fp |
| if (r4 >= fp) {
0x00010e9c bge 0x1106c | goto label_25;
| }
0x00010ea0 ldr r3, [sp, 0xc] | r3 = var_ch;
0x00010ea4 ldr sb, [r3, r4, lsl 2] | offset_1 = r4 << 2;
| sb = *((r3 + offset_1));
| label_7:
0x00010ea8 mov r0, sb | r0 = sb;
0x00010eac bl 0x10aa0 | r0 = strdup (r0);
0x00010eb0 cmp r0, 0 |
0x00010eb4 str r0, [sp, 0x10] | var_10h = r0;
| if (r0 == 0) {
0x00010eb8 beq 0x10cd8 | goto label_2;
| }
0x00010ebc mov r1, 0 | r1 = 0;
0x00010ec0 mov r0, sb | r0 = sb;
0x00010ec4 bl 0x10a88 | r0 = dbus_validate_utf8 ();
0x00010ec8 cmp r0, 0 |
| if (r0 != 0) {
0x00010ecc bne 0x10d64 | goto label_3;
| }
0x00010ed0 ldr r2, [pc, 0x210] | r2 = "--systemd";
0x00010ed4 ldr r1, [pc, 0x25c] | r1 = "setting__s_s";
0x00010ed8 mov r3, sb | r3 = sb;
| label_21:
0x00010edc ldr r0, [pc, 0x21c] |
0x00010ee0 ldr r0, [r0] | r0 = "%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n";
0x00010ee4 bl 0x10b18 | fprintf ("%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n", "setting__s_s", "--systemd", r3);
| label_22:
0x00010ee8 ldr r0, [sp, 0x10] | r0 = var_10h;
0x00010eec bl 0x10b60 | free (r0);
0x00010ef0 add r4, r4, 1 | r4++;
0x00010ef4 b 0x11050 | goto label_26;
| label_8:
0x00010ef8 mov r1, r6 | r1 = r6;
0x00010efc add r0, sp, 0x20 | r0 += s;
0x00010f00 bl 0x10b30 | dbus_set_error_from_message ();
0x00010f04 subs r2, r0, 0 | r2 -= s;
0x00010f08 beq 0x10f24 |
| while (r0 == 0) {
0x00010f0c ldr r3, [sp, 0x24] | r3 = var_24h;
0x00010f10 ldr r2, [pc, 0x1d0] | r2 = "--systemd";
0x00010f14 str r3, [sp] | *(sp) = r3;
0x00010f18 ldr r1, [pc, 0x21c] | r1 = "_s:_warning:_environment_variable_not_UTF_8:__s";
0x00010f1c ldr r3, [sp, 0x20] | r3 = s;
0x00010f20 b 0x110cc | goto label_27;
0x00010f24 add r1, sp, 0x20 | r1 += s;
0x00010f28 mov r0, r6 | r0 = r6;
0x00010f2c bl 0x10a34 | r0 = dbus_message_get_args ();
0x00010f30 cmp r0, 0 |
0x00010f34 beq 0x10f0c |
| }
0x00010f38 mov r0, r4 | r0 = r4;
0x00010f3c bl 0x10b3c | dbus_message_unref ();
0x00010f40 cmp r5, 0 |
| if (r5 == 0) {
0x00010f44 beq 0x10f94 | goto label_28;
| }
0x00010f48 add r3, sp, 0x20 | r3 += s;
0x00010f4c mvn r2, 0 | r2 = ~0;
0x00010f50 mov r1, r7 | r1 = r7;
0x00010f54 mov r0, r8 | r0 = r8;
0x00010f58 bl 0x10ab8 | r0 = dbus_connection_send_with_reply_and_block ();
0x00010f5c subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 != r0) {
0x00010f60 bne 0x10fb0 | goto label_29;
| }
0x00010f64 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00010f68 ldr r0, [pc, 0x190] |
0x00010f6c str r3, [sp] | *(sp) = r3;
0x00010f70 ldr r2, [pc, 0x170] | r2 = "--systemd";
0x00010f74 ldr r3, [sp, 0x20] | r3 = s;
0x00010f78 ldr r1, [pc, 0x1c0] | r1 = "_s:_error_from_dbus_daemon:__s:__s";
0x00010f7c ldr r0, [r0] | r0 = "%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n";
0x00010f80 bl 0x10b18 | fprintf ("%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n", "_s:_error_from_dbus_daemon:__s:__s", "--systemd", r3);
| do {
0x00010f84 mov r0, r7 | r0 = r7;
0x00010f88 bl 0x10b3c | dbus_message_unref ();
0x00010f8c add r0, sp, 0x20 | r0 += s;
0x00010f90 bl 0x10ad0 | dbus_error_free ();
| label_28:
0x00010f94 mov r0, r6 | r0 = r6;
0x00010f98 bl 0x10b3c | dbus_message_unref ();
0x00010f9c mov r0, r8 | r0 = r8;
0x00010fa0 bl 0x10a94 | dbus_connection_unref ();
0x00010fa4 mov r0, 0 | r0 = 0;
0x00010fa8 add sp, sp, 0x17c |
0x00010fac pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_29:
0x00010fb0 mov r1, r6 | r1 = r6;
0x00010fb4 add r0, sp, 0x20 | r0 += s;
0x00010fb8 bl 0x10b30 | dbus_set_error_from_message ();
0x00010fbc subs r2, r0, 0 | r2 -= s;
| if (r2 == s) {
0x00010fc0 beq 0x10ff0 | goto label_30;
| }
| label_4:
0x00010fc4 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00010fc8 ldr r0, [pc, 0x130] |
0x00010fcc str r3, [sp] | *(sp) = r3;
0x00010fd0 ldr r2, [pc, 0x110] | r2 = "--systemd";
0x00010fd4 ldr r3, [sp, 0x20] | r3 = s;
0x00010fd8 ldr r1, [pc, 0x164] | r1 = "_s:_warning:_error_sending_to_systemd:__s:__s";
0x00010fdc ldr r0, [r0] | r0 = "%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n";
0x00010fe0 bl 0x10b18 | fprintf ("%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n", "_s:_warning:_error_sending_to_systemd:__s:__s", "--systemd", r3);
| label_5:
0x00010fe4 mov r0, r4 | r0 = r4;
0x00010fe8 bl 0x10b3c | dbus_message_unref ();
0x00010fec b 0x10f84 |
| } while (1);
| label_30:
0x00010ff0 add r1, sp, 0x20 | r1 += s;
0x00010ff4 mov r0, r6 | r0 = r6;
0x00010ff8 bl 0x10a34 | r0 = dbus_message_get_args ();
0x00010ffc cmp r0, 0 |
| if (r0 == 0) {
0x00011000 beq 0x10fc4 | goto label_4;
| }
0x00011004 b 0x10fe4 | goto label_5;
| label_19:
0x00011008 ldr r3, [pc, 0x138] | r3 = "%s: warning: error from systemd: %s: %s\n";
0x0001100c ldr r2, [pc, 0x138] | r2 = "SetEnvironment";
0x00011010 ldr r1, [pc, 0x138] | r1 = "org.freedesktop.systemd1.Manager";
0x00011014 ldr r0, [pc, 0x138] | r0 = "_org_freedesktop_systemd1";
0x00011018 bl 0x10ac4 | r0 = dbus_message_new_method_call ();
0x0001101c subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 == r0) {
0x00011020 beq 0x10cd8 | goto label_2;
| }
0x00011024 add r1, sp, 0xa0 | r1 += var_a0h;
0x00011028 bl 0x10a04 | dbus_message_iter_init_append ();
0x0001102c add r3, sp, 0xd8 | r3 += var_d8h;
0x00011030 ldr r2, [pc, 0x120] | r2 = "org.freedesktop.systemd1";
0x00011034 mov r1, 0x61 | r1 = 0x61;
0x00011038 add r0, sp, 0xa0 | r0 += var_a0h;
0x0001103c bl 0x10a40 | r0 = dbus_message_iter_open_container ();
0x00011040 cmp r0, 0 |
| if (r0 == 0) {
0x00011044 beq 0x10cd8 | goto label_2;
| }
| label_20:
0x00011048 cmp sl, 0 |
| if (sl == 0) {
0x0001104c movne r4, 0 | r4 = 0;
| }
| label_26:
0x00011050 cmp sl, 0 |
| if (sl == 0) {
0x00011054 beq 0x10e98 | goto label_6;
| }
0x00011058 ldr r3, [pc, 0xfc] |
0x0001105c ldr r3, [r3] | r3 = *(0x11158);
0x00011060 ldr sb, [r3, r4, lsl 2] | sb = *(0x11158);
0x00011064 cmp sb, 0 |
| if (sb != 0) {
0x00011068 bne 0x10ea8 | goto label_7;
| }
| label_25:
0x0001106c add r1, sp, 0x68 | r1 += var_68h;
0x00011070 add r0, sp, 0x30 | r0 += var_30h;
0x00011074 bl 0x10b78 | r0 = dbus_message_iter_close_container ();
0x00011078 cmp r0, 0 |
| if (r0 == 0) {
0x0001107c beq 0x10cd8 | goto label_2;
| }
0x00011080 cmp r5, 0 |
| if (r5 == 0) {
0x00011084 beq 0x1109c | goto label_31;
| }
0x00011088 add r1, sp, 0xd8 | r1 += var_d8h;
0x0001108c add r0, sp, 0xa0 | r0 += var_a0h;
0x00011090 bl 0x10b78 | r0 = dbus_message_iter_close_container ();
0x00011094 cmp r0, 0 |
| if (r0 == 0) {
0x00011098 beq 0x10cd8 | goto label_2;
| }
| label_31:
0x0001109c add r3, sp, 0x20 | r3 += s;
0x000110a0 mvn r2, 0 | r2 = ~0;
0x000110a4 mov r1, r6 | r1 = r6;
0x000110a8 mov r0, r8 | r0 = r8;
0x000110ac bl 0x10ab8 | r0 = dbus_connection_send_with_reply_and_block ();
0x000110b0 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 != r0) {
0x000110b4 bne 0x10ef8 | goto label_8;
| }
0x000110b8 ldr r3, [sp, 0x24] | r3 = var_24h;
0x000110bc ldr r2, [pc, 0x24] | r2 = "--systemd";
0x000110c0 str r3, [sp] | *(sp) = r3;
0x000110c4 ldr r1, [pc, 0x94] | r1 = __environ;
0x000110c8 ldr r3, [sp, 0x20] | r3 = s;
| label_27:
0x000110cc ldr r0, [pc, 0x2c] |
0x000110d0 ldr r0, [r0] | r0 = "%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n";
0x000110d4 bl 0x10b18 | fprintf ("%1$s: update environment variables that will be set for D-Bus\n session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n Add specified variables to D-Bus activation environment.\n If omitted, values are taken from current environment;\n variables not found in the environment are ignored.\n%1$s --all\n Add entire current environment to D-Bus activation\n environment.\n\nOptions:\n\n--all\n Upload all environment variables.\n--systemd\n Also update the 'systemd --user' environment\n if possible.\n--verbose\n Talk about it.\n", r1, "--systemd", r3);
0x000110d8 mov r0, 0x45 | r0 = 0x45;
0x000110dc b 0x10c78 | goto label_9;
| }
[*] Function sprintf used 3 times dbus-update-activation-environment