From d552baf1ffe37d43cbed8771ecdbc3349eef1ea8 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Mon, 30 May 2011 22:38:09 -0700 Subject: [PATCH] Revert "Parse pin codes starting with '$' as hexadecimal encoded strings" --- src/event.c | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/src/event.c b/src/event.c index 6be7ea241..0b4388485 100644 --- a/src/event.c +++ b/src/event.c @@ -96,53 +96,24 @@ static gboolean get_adapter_and_device(bdaddr_t *src, bdaddr_t *dst, * *****************************************************************/ -static size_t decode_hex(const char *pin, char *out) -{ - size_t i; - - for (i = 0; i < 16 && pin[i * 2] && pin[i * 2 + 1]; i++) - sscanf(&pin[i * 2], "%02hhX", &out[i]); - - return i; -} - -static size_t decode_pin(const char *pin, char *out) -{ - size_t len; - - if (!pin) - return 0; - - if (pin[0] == '$') { - len = decode_hex(&pin[1], out); - } else { - len = strnlen(pin, 16); - memcpy(out, pin, len); - } - - return len; -} - static void pincode_cb(struct agent *agent, DBusError *derr, const char *pincode, struct btd_device *device) { struct btd_adapter *adapter = device_get_adapter(device); bdaddr_t dba; int err; - size_t len; - char rawpin[16]; device_get_address(device, &dba); - len = decode_pin(pincode, rawpin); - if (derr || !len) { + if (derr) { err = btd_adapter_pincode_reply(adapter, &dba, NULL, 0); if (err < 0) goto fail; return; } - err = btd_adapter_pincode_reply(adapter, &dba, rawpin, len); + err = btd_adapter_pincode_reply(adapter, &dba, pincode, + pincode ? strlen(pincode) : 0); if (err < 0) goto fail; -- 2.47.3