Giter VIP home page Giter VIP logo

ampache_browser's People

Contributors

openhs avatar robert-scheck avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ampache_browser's Issues

Use after free in connectToServer()

Valgrind says:

==8834== Invalid read of size 1
==8834==    at 0x4C2DBA2: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8834==    by 0x5C9E438: length (char_traits.h:267)
==8834==    by 0x5C9E438: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (ostream:562)
==8834==    by 0x11109CCE: data::Ampache::connectToServer() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x11108B25: data::Ampache::initialize() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x1117540F: application::DataLoader::load() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x1118A585: application::AmpacheBrowserApp::initializeAndLoad() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x11188A36: application::AmpacheBrowserApp::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x11197E18: application::Application::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x11199D11: ampache_browser::ApplicationQt::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0xF8A1E5C: AmpacheBrowserPlugin::get_qt_widget() (ampache_browser_plugin.cc:131)
==8834==    by 0x1FDCE91B: MainWindow::add_dock_plugin_cb(PluginHandle*) (main_window.cc:303)
==8834==    by 0x1FDCF506: MainWindow::add_dock_plugins() (main_window.cc:334)
==8834==  Address 0x2131b158 is 24 bytes inside a block of size 89 free'd
==8834==    at 0x4C2BCEA: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8834==    by 0x1110E417: QTypedArrayData<char>::deallocate(QArrayData*) (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x1110CE98: QByteArray::~QByteArray() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x11109BEC: data::Ampache::connectToServer() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x11108B25: data::Ampache::initialize() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x1117540F: application::DataLoader::load() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x1118A585: application::AmpacheBrowserApp::initializeAndLoad() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x11188A36: application::AmpacheBrowserApp::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x11197E18: application::Application::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0x11199D11: ampache_browser::ApplicationQt::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834==    by 0xF8A1E5C: AmpacheBrowserPlugin::get_qt_widget() (ampache_browser_plugin.cc:131)
==8834==    by 0x1FDCE91B: MainWindow::add_dock_plugin_cb(PluginHandle*) (main_window.cc:303)

Extra top-level window displayed briefly on startup

When enabling the Ampache plugin, or when starting Audacious with it enabled, an extra top-level window is shown for an instant and then disappears. The cause is probably this line in Ui::Ui():

myMainWindow->show();

Calling show() on a Qt widget before it has a parent, maps it as a top-level window. This show() call should probably just be removed.

Compiler warning: address will never be null

In file included from /home/john/Source/ampache_browser/include/internal/data//repositories/artist_repository.h:17:0,
                 from /home/john/Source/ampache_browser/src/application/models/artist_model.cc:16:
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h: In instantiation of ‘data::Repository<T, U>::isLoaded(int, int) const::<lambda(const T&)> [with T = data::ArtistData; U = domain::Artist]’:
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h:430:57:   required from ‘struct data::Repository<T, U>::isLoaded(int, int) const [with T = data::ArtistData; U = domain::Artist]::<lambda(const class data::ArtistData&)>’
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h:429:55:   required from ‘bool data::Repository<T, U>::isLoaded(int, int) const [with T = data::ArtistData; U = domain::Artist]’
/home/john/Source/ampache_browser/src/application/models/artist_model.cc:57:42:   required from here
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h:430:84: warning: the compiler can assume that the address of ‘fd’ will never be NULL [-Waddress]
         filteredData.begin() + filteredOffset + count, [](const T& fd) {return &fd != nullptr;});
                                                                                ~~~~^~~~~~~~~~
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h: In lambda function:
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h:430:95: warning: nonnull argument ‘fd’ compared to NULL [-Wnonnull-compare]
         filteredData.begin() + filteredOffset + count, [](const T& fd) {return &fd != nullptr;});
                                                                                               ^

Install path is wrong on Arch Linux

On Arch Linux, with cmake -DCMAKE_INSTALL_PREFIX:PATH=<prefix>, shared libraries are installed to <prefix>/lib64. Ampache should follow the convention of other libraries, which is to use <prefix>/lib.

std::bad_alloc raised by domain::Artist::getId()

A Fedora user reports a crash as described here:
https://bugzilla.redhat.com/show_bug.cgi?id=1541127

It doesn't look like there is a known way to reproduce the crash as yet, so this is just an FYI.

Cleaned up backtrace:

Core was generated by `audacious -VVQ'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
[Current thread is 1 (Thread 0x7fac50d46040 (LWP 20461))]

Thread 1 (Thread 0x7fac50d46040 (LWP 20461)):
#0  0x00007fac4f14d66b in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007fac4f14f381 in __GI_abort () at abort.c:79
#2  0x00007fac4faf7025 in __gnu_cxx::__verbose_terminate_handler() () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#3  0x00007fac4faf4c16 in __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:47
#4  0x00007fac4faf4c61 in std::terminate() () at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:57
#5  0x00007fac4faf4ea4 in __cxxabiv1::__cxa_throw (obj=<optimized out>, tinfo=0x7fac4fddd750 <typeinfo for std::bad_alloc>, dest=0x7fac4faf2f00 <std::bad_alloc::~bad_alloc()>) at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:93
#6  0x00007fac4faf542c in operator new(unsigned long) (sz=94132798226440) at ../../../../libstdc++-v3/libsupc++/new_op.cc:54
#7  0x00007fac1ac4c80d in std::__cxx11::basic_string::_M_construct() (this=this@entry=0x7ffca1173de0, __beg=0x559d138d7340 "", __end=<optimized out>) at /usr/include/c++/7/bits/basic_string.tcc:219
#8  0x00007fac1ac4c953 in std::__cxx11::basic_string::_M_construct_aux() (__end=<optimized out>, __beg=<optimized out>, this=0x7ffca1173de0) at /usr/include/c++/7/bits/basic_string.h:220
#9  0x00007fac1ac4c953 in std::__cxx11::basic_string::_M_construct() (__end=<optimized out>, __beg=<optimized out>, this=0x7ffca1173de0) at /usr/include/c++/7/bits/basic_string.h:239
#10 0x00007fac1ac4c953 in std::__cxx11::basic_string::basic_string() (__str=..., this=0x7ffca1173de0) at /usr/include/c++/7/bits/basic_string.h:424
#11 0x00007fac1ac4c953 in domain::Artist::getId() const (this=<optimized out>) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/domain/artist.cc:28
#12 0x00007fac1ac4c953 in domain::operator==() (lhs=..., rhs=...) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/domain/artist.cc:40
#13 0x00007fac1ac66f72 in std::equal_to::operator()() const (this=0x559d137d7288, __y=..., __x=...) at /usr/include/c++/7/bits/stl_function.h:356
#14 0x00007fac1ac66f72 in std::__detail::_Equal_helper::_S_equals() (__eq=..., __extract=..., __n=0x559d138c9d80, __c=1997581895559225089, __k=...) at /usr/include/c++/7/bits/hashtable_policy.h:1433
#15 0x00007fac1ac66f72 in std::__detail::_Hashtable_base::_M_equals() const (this=0x559d137d7288, __n=0x559d138c9d80, __c=1997581895559225089, __k=...) at /usr/include/c++/7/bits/hashtable_policy.h:1815
#16 0x00007fac1ac66f72 in std::_Hashtable::_M_find_before_node() const (this=this@entry=0x559d137d7288, __n=__n@entry=265, __k=..., __code=__code@entry=1997581895559225089) at /usr/include/c++/7/bits/hashtable.h:1557
#17 0x00007fac1ac65876 in std::_Hashtable::_M_find_node() const (__c=1997581895559225089, __key=..., __bkt=<optimized out>, this=0x559d137d7288) at /usr/include/c++/7/bits/hashtable.h:642
#18 0x00007fac1ac65876 in std::__detail::_Map_base::operator[]() (__k=..., this=0x559d137d7288) at /usr/include/c++/7/bits/hashtable_policy.h:746
#19 0x00007fac1ac65876 in std::unordered_map::operator[]() (__k=..., this=0x559d137d7288) at /usr/include/c++/7/bits/unordered_map.h:968
#20 0x00007fac1ac65876 in data::Indices::addArtists() (this=0x559d137d7240, artists=std::vector of length 239, capacity 256 = {...}) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/data/indices.cc:22
#21 0x00007fac1ac6fd02 in data::ArtistRepository::updateIndices() (this=0x559d138b15a0, data=...) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/data/repositories/artist_repository.cc:81
#22 0x00007fac1ac83fa8 in data::Repository::onDataLoadRequestFinished() (this=0x559d138b15a0, dataAndError=...) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/include/internal/data/repositories/repository.h:577
#23 0x00007fac1ac57c39 in std::function::operator()() const (__args#0=..., this=<optimized out>) at /usr/include/c++/7/bits/std_function.h:706
#24 0x00007fac1ac57c39 in infrastructure::Delegate::operator()() const (arg=..., this=<optimized out>) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/infrastructure/event/delegate.cc:27
#25 0x00007fac1ac57c39 in infrastructure::Event::operator()() (this=this@entry=0x559d136c9e70, arg=...) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/infrastructure/event/event.cc:21
#26 0x00007fac1ac52a91 in data::Ampache::processArtists() (this=0x559d136c9e30, xmlStreamReader=..., error=<optimized out>) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/data/providers/ampache/ampache.cc:443
#27 0x00007fac1ac547d5 in data::Ampache::onNetworkRequestFinished() (this=0x559d136c9e30, url=..., content=<optimized out>, contentSize=40138) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/data/providers/ampache/ampache.cc:163
#28 0x00007fac1aec1909 in std::function::operator()() const (__args#2=<optimized out>, __args#1=<optimized out>, __args#0="https://<hostname redacted>/index.php/apps/music/ampache/server/xml.server.php?action=artists&auth=something&limit=1&offset=476", this=0x559d136ca058) at /usr/include/c++/7/bits/std_function.h:706
#29 0x00007fac1aec1909 in vfsAsyncCb() (url=0x559d137381c0 "https://<hostname redacted>/index.php/apps/music/ampache/server/xml.server.php?action=artists&auth=something&limit=1&offset=476", data=..., callback=0x559d136ca058) at ampache.cc:56
#30 0x00007fac509408f4 in send_data() () at vfs_async.cc:59
#31 0x00007fac5092826f in QueuedFuncHelper::run() (this=0x7fac380b4860) at mainloop.cc:136
#32 0x00007fac4eae98cb in QObject::event() (this=0x7fac50b5e0e0 <router>, e=<optimized out>) at kernel/qobject.cpp:1268
#33 0x00007fac30e536ac in QApplicationPrivate::notify_helper() (this=this@entry=0x559d13044360, receiver=receiver@entry=0x7fac50b5e0e0 <router>, e=e@entry=0x7fac380b4890) at kernel/qapplication.cpp:3722
#34 0x00007fac30e5aef4 in QApplication::notify() (this=0x559d13094aa0, receiver=0x7fac50b5e0e0 <router>, e=0x7fac380b4890) at kernel/qapplication.cpp:3481
#35 0x00007fac4eac0367 in QCoreApplication::notifyInternal2() (receiver=0x7fac50b5e0e0 <router>, event=event@entry=0x7fac380b4890) at kernel/qcoreapplication.cpp:1018
#36 0x00007fac4eac2aeb in QCoreApplication::sendEvent() (event=0x7fac380b4890, receiver=<optimized out>) at kernel/qcoreapplication.h:233
#37 0x00007fac4eac2aeb in QCoreApplicationPrivate::sendPostedEvents() (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x559d13032410) at kernel/qcoreapplication.cpp:1678
#38 0x00007fac4eac3008 in QCoreApplication::sendPostedEvents() (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1532
#39 0x00007fac4eb11553 in postEventSourceDispatch() (s=0x559d1320a1f0) at kernel/qeventdispatcher_glib.cpp:276
#40 0x00007fac4fe35b77 in g_main_dispatch (context=0x559d13045bd0) at gmain.c:3142
#41 0x00007fac4fe35b77 in g_main_context_dispatch (context=context@entry=0x559d13045bd0) at gmain.c:3795
#42 0x00007fac4fe35f20 in g_main_context_iterate (context=context@entry=0x559d13045bd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3868
#43 0x00007fac4fe35fac in g_main_context_iteration (context=0x559d13045bd0, may_block=may_block@entry=1) at gmain.c:3929
#44 0x00007fac4eb1133f in QEventDispatcherGlib::processEvents() (this=0x559d1327c740, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#45 0x00007fac4eabf0ea in QEventLoop::exec() (this=this@entry=0x7ffca1174900, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#46 0x00007fac4eac7744 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1291
#47 0x00007fac509279ba in interface_run() () at interface.cc:163
#48 0x00007fac5093b0d2 in aud_run() () at runtime.cc:323
#49 0x0000559d118f9109 in main() (argc=<optimized out>, argv=<optimized out>) at main.cc:395

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.