Package: dosfstools Version: 3.0.16-1 Tags: upstream patch User: [email protected] Usertags: origin-ubuntu ubuntu-patch saucy
Hello,
Since dosfstools 3.0.16, the udisks2 test suite now fails with
File "src/tests/integration-test", line 1001, in _do_udisks_check
fs.call_set_label_sync('', no_options, None)
File "/usr/lib/python3/dist-packages/gi/types.py", line 113, in function
return info.invoke(*args, **kwargs)
gi._glib.GError: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Error
setting label: Command-line `dosfslabel "/dev/sdb" ""' exited with non-zero
exit status 1: dosfslabel: labels cannot contain lower case characters
I can replicate this error on the command line:
$ dd if=/dev/zero of=/tmp/i bs=1024 count=2000
$ mkdosfs /tmp/i
$ dosfslabel /tmp/i 'HELLO'
$ dosfslabel /tmp/i ''
dosfslabel: labels cannot contain lower case characters
This is because the check always reads 11 characters into argv[1],
regardless of the actual string length. git formatted patch against
upstream master attached.
Thanks,
Martin
--
Martin Pitt | http://www.piware.de
Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
From 85a6cd1f62f6b31fb21ddea9e01da97e8c940e0d Mon Sep 17 00:00:00 2001 From: Martin Pitt <[email protected]> Date: Fri, 24 May 2013 09:35:44 +0200 Subject: [PATCH 3/3] dosfslabel: Do not read beyond string length When checking whether the label contains any lower-case characters, do not read beyond the end of the string. --- src/dosfslabel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dosfslabel.c b/src/dosfslabel.c index dd8d36a..c87c834 100644 --- a/src/dosfslabel.c +++ b/src/dosfslabel.c @@ -115,7 +115,7 @@ int main(int argc, char *argv[]) "dosfslabel: labels can be no longer than 11 characters\n"); exit(1); } - for (i = 0; i < 11; i++) + for (i = 0; label[i] && i < 11; i++) /* don't know if here should be more strict !uppercase(label[i])*/ if (islower(label[i])) { fprintf(stderr, -- 1.8.1.2
signature.asc
Description: Digital signature

