Status: Unconfirmed
Owner: ----
CC: e...@chromium.org,  yusu...@chromium.org
Labels: OS-Linux Area-Plugins Size-Medium Type-Bug I18N

New issue 18866 by yusu...@chromium.org: Crash: Check failed:  
IsStringASCII(ascii). NPAPI problem?
http://code.google.com/p/chromium/issues/detail?id=18866

Chrome Version: ToT, r22883
OS + version : Ubuntu 9.04 Jaunty (my personal machine, not a Google-issued
one)
CPU architecture (32-bit / 64-bit): 32-bit
window manager : GNOME default
URLs (if applicable) : about:plugins

What steps will reproduce the problem?

1. set LANG to Japanese UTF-8 (note that this is the default value of the
Ubuntu Jaunty Japanese edition). If the variable is set to "C", the crash
does not occur. Looks like a I18N issue.

$ export LANG="ja_JP.UTF-8"

2. start chromium

$ cd sconsbuild/Debug/
$ ./chrome 2>&1 | c++filt

3. visit the about:plugins page

What is the expected result?

A list of installed plugins is shown.

What happens instead?

Chromium crashes with the following stacktrace:

Please provide any additional information below. Attach a screenshot
and backtrace if possible.

yusu...@yusukes-desktop:~/chromium3/src/sconsbuild/Debug$ ./chrome 2>&1 |
c++filt
[11872:11876:758015055205:FATAL:/home/yusukes/chromium3/src/base/string_util.cc(510)]
Check failed: IsStringASCII(ascii).
[11872:11876:758015055205:FATAL:/home/yusukes/chromium3/src/base/string_util.cc(510)]
Check failed: IsStringASCII(ascii).
Backtrace:
     ./chrome(StackTrace::StackTrace()+0x32) [0x982dbee]
     ./chrome(logging::LogMessage::~LogMessage()+0x208) [0x98480f8]
     ./chrome(ASCIIToWide(StringPiece const&)+0xa1) [0x9873ab1]
     ./chrome(NPAPI::PluginLib::ReadWebPluginInfo(FilePath const&,
WebPluginInfo*)+0x261) [0x9ebc491]
     ./chrome(NPAPI::PluginList::ReadPluginInfo(FilePath const&,
WebPluginInfo*, NPAPI::PluginEntryPoints const**)+0xbc) [0x9e4730c]
     ./chrome(NPAPI::PluginList::LoadPlugin(FilePath const&)+0x2a)  
[0x9e47340]
     ./chrome(NPAPI::PluginList::LoadPluginsFromDir(FilePath const&)+0xab)
[0x9e48ce1]
     ./chrome(NPAPI::PluginList::LoadPlugins(bool)+0x12a) [0x9e4754a]
     ./chrome(NPAPI::PluginList::Singleton()+0x3c) [0x9e47992]
     ./chrome(PluginService::GetPlugins(bool, std::vector<WebPluginInfo,
std::allocator<WebPluginInfo> >*)+0x2b) [0x947a4a9]
     ./chrome(ResourceMessageFilter::OnGetPlugins(bool,
std::vector<WebPluginInfo, std::allocator<WebPluginInfo> >*)+0x29)  
[0x96be73f]
     ./chrome(void DispatchToMethod<ResourceMessageFilter, void
(ResourceMessageFilter::*)(bool, std::vector<WebPluginInfo,
std::allocator<WebPluginInfo> >*), bool, std::vector<WebPluginInfo,
std::allocator<WebPluginInfo> > >(ResourceMessageFilter*, void
(ResourceMessageFilter::*)(bool, std::vector<WebPluginInfo,
std::allocator<WebPluginInfo> >*), Tuple1<bool> const&,
Tuple1<std::vector<WebPluginInfo, std::allocator<WebPluginInfo> > >*)+0x4e)
[0x96c256d]
     ./chrome(bool IPC::MessageWithReply<Tuple1<bool>,
Tuple1<std::vector<WebPluginInfo, std::allocator<WebPluginInfo> >&>
> ::Dispatch<ResourceMessageFilter, void (ResourceMessageFilter::*)(bool,
std::vector<WebPluginInfo, std::allocator<WebPluginInfo> >*)>(IPC::Message
const*, ResourceMessageFilter*, void (ResourceMessageFilter::*)(bool,
std::vector<WebPluginInfo, std::allocator<WebPluginInfo> >*))+0x79)  
[0x96c71f9]
     ./chrome(ResourceMessageFilter::OnMessageReceived(IPC::Message
const&)+0x514) [0x96bfdb6]
     ./chrome(IPC::ChannelProxy::Context::TryFilters(IPC::Message
const&)+0x6a) [0x9d1bdfa]
     ./chrome(IPC::SyncChannel::SyncContext::OnMessageReceived(IPC::Message
const&)+0x18) [0x9d22b06]
     ./chrome(IPC::Channel::ChannelImpl::ProcessIncomingMessages()+0x9cc)
[0x9d18b06]

./chrome(IPC::Channel::ChannelImpl::OnFileCanReadWithoutBlocking(int)+0x165)  
[0x9d19727]
     ./chrome(base::MessagePumpLibevent::OnLibeventNotification(int, short,
void*)+0x5b) [0x9854539]
     ./chrome [0x99cc738]
     ./chrome(event_base_loop+0x158) [0x99cca0d]

./chrome(base::MessagePumpLibevent::Run(base::MessagePump::Delegate*)+0x24e)  
[0x9854afc]
     ./chrome(MessageLoop::RunInternal()+0x137) [0x984b3dd]
     ./chrome(MessageLoop::RunHandler()+0x11) [0x984b3f7]
     ./chrome(MessageLoop::Run()+0x23) [0x984b49b]
     ./chrome(base::Thread::ThreadMain()+0xca) [0x987fe64]
     ./chrome [0x985fea2]
     /lib/tls/i686/cmov/libpthread.so.0 [0xb75184ff]
     /lib/tls/i686/cmov/libc.so.6(clone+0x5e) [0xb726a49e]

$ gdb ./chrome
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later  
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) r
Starting program: /home/yusukes/chromium3/src/sconsbuild/Debug/chrome

<<visit about:plugins here>>

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0xb59c9b90 (LWP 12234)]
DebugUtil::BreakDebugger () at
/home/yusukes/chromium3/src/base/debug_util_posix.cc:116
116    }
(gdb) bt
#0  DebugUtil::BreakDebugger () at
/home/yusukes/chromium3/src/base/debug_util_posix.cc:116
#1  0x098480e8 in ~LogMessage (this=0xb59c7e40) at
/home/yusukes/chromium3/src/base/logging.cc:535
#2  0x09873ab1 in ASCIIToWide (asc...@0xb59c802c) at
/home/yusukes/chromium3/src/base/string_util.cc:510
#3  0x09ebc491 in NPAPI::PluginLib::ReadWebPluginInfo
(filena...@0xb59c815c, info=0xb59c80c0) at
/home/yusukes/chromium3/src/webkit/glue/plugins/plugin_lib_linux.cc:61
#4  0x09e4730c in NPAPI::PluginList::ReadPluginInfo (filena...@0xb59c815c,
info=0xb59c80c0, entry_points=0xb59c80e4) at
/home/yusukes/chromium3/src/webkit/glue/plugins/plugin_list.cc:77
#5  0x09e47340 in NPAPI::PluginList::LoadPlugin (this=0xb7b4d84,
pa...@0xb59c815c) at
/home/yusukes/chromium3/src/webkit/glue/plugins/plugin_list.cc:185
#6  0x09e48ce1 in NPAPI::PluginList::LoadPluginsFromDir (this=0xb7b4d84,
pa...@0xd4bfa78) at
/home/yusukes/chromium3/src/webkit/glue/plugins/plugin_list_linux.cc:55
#7  0x09e4754a in NPAPI::PluginList::LoadPlugins (this=0xb7b4d84,
refresh=false) at
/home/yusukes/chromium3/src/webkit/glue/plugins/plugin_list.cc:168
#8  0x09e47992 in NPAPI::PluginList::Singleton () at
/home/yusukes/chromium3/src/webkit/glue/plugins/plugin_list.cc:30
#9  0x0947a4a9 in PluginService::GetPlugins (this=0xb6312d18, refresh=true,
plugins=0xb59c84d8) at
/home/yusukes/chromium3/src/chrome/browser/plugin_service.cc:81
#10 0x096be73f in ResourceMessageFilter::OnGetPlugins (this=0xd4b3d20,
refresh=true, plugins=0xb59c84d8) at
/home/yusukes/chromium3/src/chrome/browser/renderer_host/resource_message_filter.cc:549
#11 0x096c256d in DispatchToMethod<ResourceMessageFilter, void
(ResourceMessageFilter::*)(bool, std::vector<WebPluginInfo,
std::allocator<WebPluginInfo> >*), bool, std::vector<WebPluginInfo,
std::allocator<WebPluginInfo> > > (
     obj=0xd4b3d20, method=0x96be716
<ResourceMessageFilter::OnGetPlugins(bool, std::vector<WebPluginInfo,
std::allocator<WebPluginInfo> >*)>, i...@0xb59c84f3, out=0xb59c84d8) at
/home/yusukes/chromium3/src/base/tuple.h:585
#12 0x096c71f9 in IPC::MessageWithReply<Tuple1<bool>,
Tuple1<std::vector<WebPluginInfo, std::allocator<WebPluginInfo> >&>
> ::Dispatch<ResourceMessageFilter, void (ResourceMessageFilter::*)(bool,
std::vector<WebPluginInfo, std::allocator<WebPluginInfo> >*)>
(msg=0xb59c8c2c, obj=0xd4b3d20, func=0x96be716
<ResourceMessageFilter::OnGetPlugins(bool, std::vector<WebPluginInfo,
std::allocator<WebPluginInfo> >*)>) at
/home/yusukes/chromium3/src/ipc/ipc_message_utils.h:1148
#13 0x096bfdb6 in ResourceMessageFilter::OnMessageReceived (this=0xd4b3d20,
m...@0xb59c8c2c) at
/home/yusukes/chromium3/src/chrome/browser/renderer_host/resource_message_filter.cc:291
#14 0x09d1bdfa in IPC::ChannelProxy::Context::TryFilters (this=0xd4b4678,
messa...@0xb59c8c2c) at  
/home/yusukes/chromium3/src/ipc/ipc_channel_proxy.cc:65
#15 0x09d22b06 in IPC::SyncChannel::SyncContext::OnMessageReceived
(this=0xd4b4678, m...@0xb59c8c2c) at
/home/yusukes/chromium3/src/ipc/ipc_sync_channel.cc:277
#16 0x09d18b06 in IPC::Channel::ChannelImpl::ProcessIncomingMessages
(this=0xd4b6820) at /home/yusukes/chromium3/src/ipc/ipc_channel_posix.cc:563
#17 0x09d19727 in IPC::Channel::ChannelImpl::OnFileCanReadWithoutBlocking
(this=0xd4b6820, fd=55) at
/home/yusukes/chromium3/src/ipc/ipc_channel_posix.cc:738
#18 0x09854539 in base::MessagePumpLibevent::OnLibeventNotification (fd=55,
flags=2, context=0xd4b6820) at
/home/yusukes/chromium3/src/base/message_pump_libevent.cc:210
#19 0x099cc738 in event_process_active (base=0xd012ea8) at
/home/yusukes/chromium3/src/third_party/libevent/event.c:385
#20 0x099cca0d in event_base_loop (base=0xd012ea8, flags=1) at
/home/yusukes/chromium3/src/third_party/libevent/event.c:522
#21 0x09854afc in base::MessagePumpLibevent::Run (this=0xd00fe30,
delegate=0xb59c925c) at
/home/yusukes/chromium3/src/base/message_pump_libevent.cc:253
#22 0x0984b3dd in MessageLoop::RunInternal (this=0xb59c925c) at
/home/yusukes/chromium3/src/base/message_loop.cc:199
#23 0x0984b3f7 in MessageLoop::RunHandler (this=0xb59c925c) at
/home/yusukes/chromium3/src/base/message_loop.cc:181
#24 0x0984b49b in MessageLoop::Run (this=0xb59c925c) at
/home/yusukes/chromium3/src/base/message_loop.cc:155
#25 0x0987fe64 in base::Thread::ThreadMain (this=0xb6310ed0) at
/home/yusukes/chromium3/src/base/thread.cc:156
#26 0x0985fea2 in ThreadFunc (closure=0xb6310ed0) at
/home/yusukes/chromium3/src/base/platform_thread_posix.cc:26
#27 0xb758b4ff in start_thread (arg=0xb59c9b90) at pthread_create.c:297
#28 0xb72dd49e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
(gdb) up
#1  0x098480e8 in ~LogMessage (this=0xb59c7e40) at
/home/yusukes/chromium3/src/base/logging.cc:535
535          DebugUtil::BreakDebugger();
(gdb) up
#2  0x09873ab1 in ASCIIToWide (asc...@0xb59c802c) at
/home/yusukes/chromium3/src/base/string_util.cc:510
510      DCHECK(IsStringASCII(ascii));

(gdb) p ascii
$4 = (const StringPiece &) @0xb59c802c: {ptr_ = 0xb1ee1984 "Ogg
�\203\236�\203��\203\201�\203��\203\207�\202��\202��\203\225�\202��\202��\203�",
length_ = 37, static npos = 4294967295}

(gdb) x/38b ascii.ptr_
0xb1ee1984:    0x4f    0x67    0x67    0x20    0xe3    0x83    0x9e    0xe3
0xb1ee198c:    0x83    0xab    0xe3    0x83    0x81    0xe3    0x83    0xa1
0xb1ee1994:    0xe3    0x83    0x87    0xe3    0x82    0xa3    0xe3    0x82
0xb1ee199c:    0xa2    0xe3    0x83    0x95    0xe3    0x82    0xa1    0xe3
0xb1ee19a4:    0x82    0xa4    0xe3    0x83    0xab    0x00

(gdb) call printf("%s\n", ascii.ptr_)
Ogg マルチメディアファイル
$6 = 38

The string ascii.ptr_ points to is written in Japanese (and in UTF-8),
which means "Ogg multimedia file". And the file NPAPI is reading is
libtotem-cone-plugin.so.

(gdb) up
#3  0x09ebc491 in NPAPI::PluginLib::ReadWebPluginInfo
(filena...@0xb5a1b15c, info=0xb5a1b0c0) at
/home/yusukes/chromium3/src/webkit/glue/plugins/plugin_lib_linux.cc:61
61            mime_type.description = ASCIIToWide(fields[2]);
(gdb) call printf("%s\n", filename.value().c_str())
/usr/lib/mozilla/plugins/libtotem-cone-plugin.so

which is part of the totem-mozilla package:

$ dpkg -S /usr/lib/mozilla/plugins/libtotem-cone-plugin.so
totem-mozilla: /usr/lib/mozilla/plugins/libtotem-cone-plugin.so

$ sha1sum /usr/lib/mozilla/plugins/libtotem-cone-plugin.so
a31d7d594e4a06aa690602df143338cddc0035d5
/usr/lib/mozilla/plugins/libtotem-cone-plugin.so

$ apt-cache showpkg totem-mozilla
Package: totem-mozilla
Versions:
2.26.1-0ubuntu5
(/var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_jaunty_main_binary-i386_Packages)
(/var/lib/dpkg/status)
  Description Language:
                  File:
/var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_jaunty_main_binary-i386_Packages
                   MD5: 0e3c465743f83cc1eccf3e903fa33e77


Reverse Depends:
   ubuntustudio-desktop,totem-mozilla
   ubuntu-netbook-remix,totem-mozilla
   totem-xine,totem-mozilla 2.20.0-3
   totem-xine,totem-mozilla 2.26.1-0ubuntu5
   gnome,totem-mozilla
   brdesktop-gnome,totem-mozilla
   ubuntu-desktop,totem-mozilla
   totem-gstreamer,totem-mozilla 2.20.0-3
   totem-gstreamer,totem-mozilla 2.26.1-0ubuntu5
Dependencies:
2.26.1-0ubuntu5 - totem-gstreamer (18 2.26.1-0ubuntu5) totem-xine (2
2.26.1-0ubuntu5) dbus (2 0.61) epiphany-browser (16 (null)) www-browser (0
(null))
Provides:
2.26.1-0ubuntu5 -
Reverse Provides:

--Yusuke


--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/group/chromium-bugs
-~----------~----~----~----~------~----~------~--~---

Reply via email to