Ensure that only UTF8 strings are passed to a DBus message iterator.

This CL changes UdevDevice to only set the drive model and filesystem
label of a disk if they are valid UTF8 strings, which prevents an
asertion error in DBus message iterator due to non-UTF8 strings.

BUG=chromium-os:26281
TEST=Tested the following:
1. Build cros-disks for {x86,amd64,arm}-generic.
2. Run cros-disks unit tests.

(cherry picked from commit b036aa58b8d2af5977c05236fed31b62a5b1a555)

Change-Id: I6adc21fd418ba0334ed46a2d85b43e00b1020307
Reviewed-on: https://gerrit.chromium.org/gerrit/17331
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
3 files changed
tree: b945546e31d2bddcbc6a5ac30cad720e9d158365
  1. .gitignore
  2. archive-manager.cc
  3. archive-manager.h
  4. archive-manager_unittest.cc
  5. avfsd-seccomp-amd64.policy
  6. avfsd-seccomp-x86.policy
  7. common.mk
  8. cros-disks-server-impl.cc
  9. cros-disks-server-impl.h
  10. cros-disks.conf
  11. cros-disks.xml
  12. daemon.cc
  13. daemon.h
  14. device-event-dispatcher-interface.h
  15. device-event-moderator.cc
  16. device-event-moderator.h
  17. device-event-moderator_unittest.cc
  18. device-event-queue.cc
  19. device-event-queue.h
  20. device-event-queue_unittest.cc
  21. device-event-source-interface.h
  22. device-event.cc
  23. device-event.h
  24. disk-manager.cc
  25. disk-manager.h
  26. disk-manager_unittest.cc
  27. disk.cc
  28. disk.h
  29. disk_unittest.cc
  30. disks_testrunner.cc
  31. external-mounter.cc
  32. external-mounter.h
  33. external-mounter_unittest.cc
  34. file-reader.cc
  35. file-reader.h
  36. file-reader_unittest.cc
  37. filesystem.cc
  38. filesystem.h
  39. format-manager-observer-interface.h
  40. format-manager.cc
  41. format-manager.h
  42. format-manager_unittest.cc
  43. inherit-review-settings-ok
  44. main.cc
  45. Makefile
  46. metrics.cc
  47. metrics.h
  48. metrics_unittest.cc
  49. mount-info.cc
  50. mount-info.h
  51. mount-info_unittest.cc
  52. mount-manager.cc
  53. mount-manager.h
  54. mount-manager_unittest.cc
  55. mount-options.cc
  56. mount-options.h
  57. mount-options_unittest.cc
  58. mounter.cc
  59. mounter.h
  60. mounter_unittest.cc
  61. ntfs-mounter.cc
  62. ntfs-mounter.h
  63. org.chromium.CrosDisks.conf
  64. OWNERS
  65. platform.cc
  66. platform.h
  67. platform_unittest.cc
  68. power-manager-observer-interface.h
  69. power-manager-proxy.cc
  70. power-manager-proxy.h
  71. sandboxed-process.cc
  72. sandboxed-process.h
  73. sandboxed-process_unittest.cc
  74. session-manager-observer-interface.h
  75. session-manager-proxy.cc
  76. session-manager-proxy.h
  77. system-mounter.cc
  78. system-mounter.h
  79. system-mounter_unittest.cc
  80. udev-device.cc
  81. udev-device.h
  82. udev-device_unittest.cc
  83. usb-device-info
  84. usb-device-info.cc
  85. usb-device-info.h
  86. usb-device-info_unittest.cc