From 25015c9c3a8f3b7450cd3de0fa6e9781adc5acbc Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Wed, 2 Mar 2011 17:27:24 +0100 Subject: [PATCH] BluetoothStatus: don't pass NaNs to native functions GJS complains when a NaN is passed in place of an integer, and parseInt returns that from non numeric string. Pass a sentinel that cancels the operation in that case. https://bugzilla.gnome.org/show_bug.cgi?id=642978 --- js/ui/status/bluetooth.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/js/ui/status/bluetooth.js b/js/ui/status/bluetooth.js index 2926f9739..78859075c 100644 --- a/js/ui/status/bluetooth.js +++ b/js/ui/status/bluetooth.js @@ -471,9 +471,15 @@ PinNotification.prototype = { this.connect('action-invoked', Lang.bind(this, function(self, action) { if (action == 'ok') { - if (this._numeric) - this._applet.agent_reply_passkey(this._devicePath, parseInt(this._entry.text)); - else + if (this._numeric) { + let num = parseInt(this._entry.text); + if (isNaN(num)) { + // user reply was empty, or was invalid + // cancel the operation + num = -1; + } + this._applet.agent_reply_passkey(this._devicePath, num); + } else this._applet.agent_reply_pincode(this._devicePath, this._entry.text); } else { if (this._numeric)