summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-09-04 22:51:38 +0200
committerMarcel Holtmann <marcel@holtmann.org>2010-09-04 22:51:38 +0200
commitbafc89a858e658dbd56ce74b808260c2ad67f0d5 (patch)
treecab7d083f2479aa448ad29bde96e5bf66238a9bd /plugins
parent35cfb432d45dc37cc8bfcc00de8492db6a3ec328 (diff)
downloadofono-bafc89a858e658dbd56ce74b808260c2ad67f0d5.tar.bz2
udev: Check for valid USB serial numbers
Diffstat (limited to 'plugins')
-rw-r--r--plugins/udev.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/plugins/udev.c b/plugins/udev.c
index 6720a0cd..38a63127 100644
--- a/plugins/udev.c
+++ b/plugins/udev.c
@@ -24,6 +24,7 @@
#endif
#include <errno.h>
+#include <ctype.h>
#include <libudev.h>
@@ -86,8 +87,14 @@ static const char *get_serial(struct udev_device *udev_device)
entry = udev_list_entry_get_next(entry);
}
- if (serial && strpbrk(serial, ".-_?*") != NULL)
- return NULL;
+ if (serial != NULL) {
+ unsigned int i, len = strlen(serial);
+
+ for (i = 0; i < len; i++) {
+ if (!isalnum(serial[i]))
+ return NULL;
+ }
+ }
return serial;
}