Bug 85288

Summary: attachments have no names and mimetypes
Product: [Unmaintained] kmail Reporter: Ferdinand Gassauer <gassauer>
Component: IMAPAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED WORKSFORME    
Severity: grave CC: flameeyes
Priority: NOR    
Version: 1.6.82   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: example of an original message and the result pressing forward.
example of an original message and the result pressing forward.

Description Ferdinand Gassauer 2004-07-15 22:17:07 UTC
Version:           1.6.82 (using KDE 3.2.91 (CVS >= 20040706), compiled sources)
Compiler:          gcc version 3.3.3 (SuSE Linux)
OS:                Linux (i686) release 2.6.5-7.95-smp

Hi!
all attachments are called "unnamed"

the statusbar however displays the filename and Openoffice opens the file

if the file has a known suffix (like ".doc") the filename is displayed in addition to the "unnamed"

if the filename is "defanged" (by Spamassasi) no filename is displayed.
cu
ferdinand
Comment 1 Ferdinand Gassauer 2004-07-16 20:34:57 UTC
interesting - 
if I compile/run KDEPIM HEAD against KDE 3.2_BRANCH it displays the name ,but not against KDE_HEAD
Comment 2 Carsten Burghardt 2004-07-18 15:25:08 UTC
That explains why I can't reproduce this as I'm running kde 3.2.

Comment 3 Ferdinand Gassauer 2004-07-20 03:07:06 UTC
even more interesting - 
after saving the name of the attachment is displayed in the statusbar, 
after leaving and reentering the same message the name in the statusbar disappears again and something like
"Attachment #1 [details] (unnamed)" is displayed.

Hmm!
After changing the "View Attachments" to whatsoever, the filenames are displayed correctly. Leaving and reentering the message changes the names to "unnamed again"

 
Comment 4 Ferdinand Gassauer 2004-07-20 03:11:35 UTC
Also changing the encoding behaves like described above.

BTW the autodetection of encoding seems to be broken see bug

http://bugs.kde.org/show_bug.cgi?id=85509

http://bugs.kde.org/show_bug.cgi?id=83404

http://bugs.kde.org/show_bug.cgi?id=81752
Comment 5 Ferdinand Gassauer 2004-07-23 17:59:52 UTC
after saving such attachments the filesize is 0 ! 

only after getting the correct text as described above, the file is saved correctly.
data loss is possbile, if one (believes to) save(s) the attachment and deletes the message.
Comment 6 Tom Albers 2004-07-24 16:42:45 UTC
Created attachment 6823 [details]
example of an original message and the result pressing forward.

I can confirm this problem with HEAD to a certain extend.... I see all the
attachments ok. But when I want to forward them (as mime) I see
'unnamed'-attachements (html part of the original message) or 'attachment:0'.
But not always, zips seem to go ok. doc seem to fail.
Comment 7 Tom Albers 2004-07-24 19:41:06 UTC
Created attachment 6827 [details]
example of an original message and the result pressing forward.

attachment was corrupt, hope this one is better
Comment 8 Diego Elio Pettenò 2004-07-27 17:15:11 UTC
Same problem with KMail from 3.3.0_beta2.

Seems like the problem is in the attachment headers: a virus mail with these headers:

Content-Type: application/octet-stream;
	name="file.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="file.zip"

works fine, instead these ones (generated by a webmail) doesn't:

Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="racconto.cwk"

and behave like said above.
Seems like KMail doesn't always parses Content-Disposition header.
Comment 9 Ferdinand Gassauer 2004-07-30 13:48:39 UTC
showstopper !
can not open nor save attachments
Comment 10 Carsten Burghardt 2004-08-01 23:10:32 UTC
CVS commit by burghard: 

Seems something broke redrawing of the email so I have to live with a bit more flickering
when loading attachments on demand. Please check if that fixes the attachment thingy.
CCMAIL: 85288@bugs.kde.org


  M +1 -1      kmmessage.cpp   1.479


--- kdepim/kmail/kmmessage.cpp  #1.478:1.479
@@ -4342,5 +4342,5 @@ void KMMessage::updateBodyPart(const QSt
   }
   mNeedsAssembly = true;
-  if (!( partSpecifier.endsWith(".HEADER") || partSpecifier.endsWith(".MIME") ))
+  if (! partSpecifier.endsWith(".HEADER") )
   {
     // notify observers


Comment 11 Ferdinand Gassauer 2004-08-02 04:59:46 UTC
After rebuild the same picture
on www.wto.org clicking a link - crash
resizing the window - crash
changing the orientation of a toolbar - crash
moving the extra toolbar - crash - this backtrace

Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 1096802240 (LWP 30224)]
[KCrash handler]
#7  0xffffe410 in ?? ()
#8  0xbfffb050 in ?? ()
#9  0x00000006 in ?? ()
#10 0x00007610 in ?? ()
#11 0x4150e7a1 in raise () from /lib/tls/libc.so.6
#12 0x4150ff79 in abort () from /lib/tls/libc.so.6
#13 0x41507fe3 in __assert_fail () from /lib/tls/libc.so.6
#14 0x41dc9100 in DOM::NodeImpl::attach (this=0x87d5200)
    at /home/kde/kdecvs/kdelibs/khtml/xml/dom_nodeimpl.cpp:814
#15 0x41dca545 in DOM::NodeBaseImpl::attach (this=0x87d5200)
    at /home/kde/kdecvs/kdelibs/khtml/xml/dom_nodeimpl.cpp:1298
#16 0x41dfa6ad in DOM::HTMLImageElementImpl::attach (this=0x87d5200)
    at /home/kde/kdecvs/kdelibs/khtml/html/html_imageimpl.cpp:184
#17 0x41dc99a8 in DOM::NodeBaseImpl::insertBefore (this=0x867de98, 
    newChild=0x87d5200, refChild=0x867dd60, exceptioncode=@0xbfffb29c)
    at /home/kde/kdecvs/kdelibs/khtml/xml/dom_nodeimpl.cpp:993
#18 0x41f4c4cb in DOM::Node::insertBefore (this=0xbfffb3b0, 
    newChild=@0xbfffb370, refChild=@0xbfffb350)
    at /home/kde/kdecvs/kdelibs/khtml/dom/dom_node.cpp:262
#19 0x41eadddf in KJS::DOMNodeProtoFunc::tryCall (this=0x8608638, 
    exec=0xbfffb780, thisObj=@0xbfffb510, args=@0xbfffb560)
    at /home/kde/kdecvs/kdelibs/khtml/ecma/kjs_dom.cpp:485
#20 0x41ea7b56 in KJS::DOMFunction::call (this=0x8608638, exec=0xbfffb780, 
    thisObj=@0xbfffb510, args=@0xbfffb560)
    at /home/kde/kdecvs/kdelibs/khtml/ecma/kjs_binding.cpp:109
#21 0x4208104c in KJS::Object::call (this=0xbfffb540, exec=0xbfffb780, 
    thisObj=@0xbfffb510, args=@0xbfffb560)
    at /home/kde/kdecvs/kdelibs/kjs/object.cpp:70
#22 0x420486a5 in KJS::FunctionCallNode::evaluate (this=0x8683010, 
    exec=0xbfffb780) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:850
#23 0x4204dfa1 in KJS::ExprStatementNode::execute (this=0x8683028, 
    exec=0xbfffb780) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1953
#24 0x4204e3a5 in KJS::IfNode::execute (this=0x8683068, exec=0xbfffb780)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1994
#25 0x420547b6 in KJS::SourceElementsNode::execute (this=0x8808648, 
    exec=0xbfffb780) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:3073
#26 0x4204ddcb in KJS::BlockNode::execute (this=0x8683240, exec=0xbfffb780)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1915
#27 0x42053a9d in KJS::FunctionBodyNode::execute (this=0x8683240, 
    exec=0xbfffb780) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:2919
#28 0x4207bb54 in KJS::DeclaredFunctionImp::execute (this=0x8808850, 
    exec=0xbfffb780) at /home/kde/kdecvs/kdelibs/kjs/function.cpp:579
#29 0x4207ac97 in KJS::FunctionImp::call (this=0x8808850, exec=0xbfffbd40, 
    thisObj=@0xbfffb870, args=@0xbfffb8c0)
    at /home/kde/kdecvs/kdelibs/kjs/function.cpp:354
#30 0x4208104c in KJS::Object::call (this=0xbfffb8a0, exec=0xbfffbd40, 
    thisObj=@0xbfffb870, args=@0xbfffb8c0)
    at /home/kde/kdecvs/kdelibs/kjs/object.cpp:70
#31 0x420486a5 in KJS::FunctionCallNode::evaluate (this=0x87b8038, 
    exec=0xbfffbd40) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:850
#32 0x4204bf6e in KJS::AssignNode::evaluate (this=0x87b8050, exec=0xbfffbd40)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1542
#33 0x4204dfa1 in KJS::ExprStatementNode::execute (this=0x87b8070, 
    exec=0xbfffbd40) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1953
#34 0x420547b6 in KJS::SourceElementsNode::execute (this=0x860ed38, 
    exec=0xbfffbd40) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:3073
#35 0x4204ddcb in KJS::BlockNode::execute (this=0x87b80d8, exec=0xbfffbd40)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1915
#36 0x4204e3a5 in KJS::IfNode::execute (this=0x87b8108, exec=0xbfffbd40)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1994
#37 0x420547b6 in KJS::SourceElementsNode::execute (this=0x8631868, 
    exec=0xbfffbd40) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:3073
#38 0x4204ddcb in KJS::BlockNode::execute (this=0x8807940, exec=0xbfffbd40)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1915
#39 0x4204eeae in KJS::WhileNode::execute (this=0x8807970, exec=0xbfffbd40)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:2105
#40 0x420547b6 in KJS::SourceElementsNode::execute (this=0x86105c8, 
    exec=0xbfffbd40) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:3073
#41 0x4204ddcb in KJS::BlockNode::execute (this=0x8807bd0, exec=0xbfffbd40)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1915
#42 0x42053a9d in KJS::FunctionBodyNode::execute (this=0x8807bd0, 
    exec=0xbfffbd40) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:2919
#43 0x4207bb54 in KJS::DeclaredFunctionImp::execute (this=0x87982b0, 
    exec=0xbfffbd40) at /home/kde/kdecvs/kdelibs/kjs/function.cpp:579
#44 0x4207ac97 in KJS::FunctionImp::call (this=0x87982b0, exec=0xbfffc170, 
    thisObj=@0xbfffbe30, args=@0xbfffbe80)
    at /home/kde/kdecvs/kdelibs/kjs/function.cpp:354
#45 0x4208104c in KJS::Object::call (this=0xbfffbe60, exec=0xbfffc170, 
    thisObj=@0xbfffbe30, args=@0xbfffbe80)
    at /home/kde/kdecvs/kdelibs/kjs/object.cpp:70
#46 0x420486a5 in KJS::FunctionCallNode::evaluate (this=0x87bcce8, 
    exec=0xbfffc170) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:850
#47 0x4204dfa1 in KJS::ExprStatementNode::execute (this=0x87bcd00, 
    exec=0xbfffc170) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1953
#48 0x420547b6 in KJS::SourceElementsNode::execute (this=0x868a1e0, 
    exec=0xbfffc170) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:3073
#49 0x4204ddcb in KJS::BlockNode::execute (this=0x88096b8, exec=0xbfffc170)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1915
#50 0x4204f68f in KJS::ForNode::execute (this=0x88096e8, exec=0xbfffc170)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:2172
#51 0x420547b6 in KJS::SourceElementsNode::execute (this=0x8742098, 
    exec=0xbfffc170) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:3073
#52 0x4204ddcb in KJS::BlockNode::execute (this=0x87278b8, exec=0xbfffc170)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1915
#53 0x42053a9d in KJS::FunctionBodyNode::execute (this=0x87278b8, 
    exec=0xbfffc170) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:2919
#54 0x4207bb54 in KJS::DeclaredFunctionImp::execute (this=0x865bb58, 
    exec=0xbfffc170) at /home/kde/kdecvs/kdelibs/kjs/function.cpp:579
#55 0x4207ac97 in KJS::FunctionImp::call (this=0x865bb58, exec=0xbfffc490, 
    thisObj=@0xbfffc260, args=@0xbfffc2b0)
    at /home/kde/kdecvs/kdelibs/kjs/function.cpp:354
#56 0x4208104c in KJS::Object::call (this=0xbfffc290, exec=0xbfffc490, 
    thisObj=@0xbfffc260, args=@0xbfffc2b0)
    at /home/kde/kdecvs/kdelibs/kjs/object.cpp:70
#57 0x420486a5 in KJS::FunctionCallNode::evaluate (this=0x865d720, 
    exec=0xbfffc490) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:850
#58 0x4204dfa1 in KJS::ExprStatementNode::execute (this=0x865d738, 
    exec=0xbfffc490) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1953
#59 0x420547b6 in KJS::SourceElementsNode::execute (this=0x867d530, 
    exec=0xbfffc490) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:3073
#60 0x4204ddcb in KJS::BlockNode::execute (this=0x865cd60, exec=0xbfffc490)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1915
#61 0x42053a9d in KJS::FunctionBodyNode::execute (this=0x865cd60, 
    exec=0xbfffc490) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:2919
#62 0x4207bb54 in KJS::DeclaredFunctionImp::execute (this=0x86c3010, 
    exec=0xbfffc490) at /home/kde/kdecvs/kdelibs/kjs/function.cpp:579
#63 0x4207ac97 in KJS::FunctionImp::call (this=0x86c3010, exec=0xbfffc7d0, 
    thisObj=@0xbfffc580, args=@0xbfffc5d0)
    at /home/kde/kdecvs/kdelibs/kjs/function.cpp:354
#64 0x4208104c in KJS::Object::call (this=0xbfffc5b0, exec=0xbfffc7d0, 
    thisObj=@0xbfffc580, args=@0xbfffc5d0)
    at /home/kde/kdecvs/kdelibs/kjs/object.cpp:70
#65 0x420486a5 in KJS::FunctionCallNode::evaluate (this=0x87950f0, 
    exec=0xbfffc7d0) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:850
#66 0x4204dfa1 in KJS::ExprStatementNode::execute (this=0x866be28, 
    exec=0xbfffc7d0) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1953
#67 0x42054687 in KJS::SourceElementsNode::execute (this=0x87ae900, 
    exec=0xbfffc7d0) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:3067
#68 0x4204ddcb in KJS::BlockNode::execute (this=0x87259c8, exec=0xbfffc7d0)
    at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:1915
#69 0x42053a9d in KJS::FunctionBodyNode::execute (this=0x87259c8, 
    exec=0xbfffc7d0) at /home/kde/kdecvs/kdelibs/kjs/nodes.cpp:2919
#70 0x42042a73 in KJS::InterpreterImp::evaluate (this=0x84e7de8, 
    code=@0xbfffc8f0, thisV=@0xbfffc910)
    at /home/kde/kdecvs/kdelibs/kjs/internal.cpp:899
#71 0x420831e2 in KJS::Interpreter::evaluate (this=0x84aac70, 
    code=@0xbfffc8f0, thisV=@0xbfffc910)
    at /home/kde/kdecvs/kdelibs/kjs/interpreter.cpp:166
#72 0x41f09513 in KJS::KJSProxyImpl::evaluate (this=0x85d6018, filename=
      {static null = {static null = <same as static member of an already seen type>, d = 0x8057070, static shared_null = 0x8057070}, d = 0x86d6c88, static shared_null = 0x8057070}, baseLine=1, str=@0x852849c, n=@0xbfffca80, 
    completion=0xbfffca10)
    at /home/kde/kdecvs/kdelibs/khtml/ecma/kjs_proxy.cpp:152
#73 0x41d78b0c in KHTMLPart::executeScript (this=0x8480d70, n=@0xbfffca80, 
    script=@0x852849c) at /home/kde/kdecvs/kdelibs/khtml/khtml_part.cpp:1023
#74 0x41ef9a4d in KJS::ScheduledAction::execute (this=0x8528490, 
    window=0x8602398)
    at /home/kde/kdecvs/kdelibs/khtml/ecma/kjs_window.cpp:1688
#75 0x41efa910 in KJS::WindowQObject::timerEvent (this=0x8601550)
    at /home/kde/kdecvs/kdelibs/khtml/ecma/kjs_window.cpp:1814
#76 0x40cfe73c in QObject::event (this=0x8601550, e=0xbfffcd60)
    at kernel/qobject.cpp:741
#77 0x40c9e33b in QApplication::internalNotify (this=0xbfffd160, 
    receiver=0x8601550, e=0xbfffcd60) at kernel/qapplication.cpp:2620
#78 0x40c9d7f8 in QApplication::notify (this=0xbfffd160, receiver=0x8601550, 
    e=0xbfffcd60) at kernel/qapplication.cpp:2343
#79 0x407a0122 in KApplication::notify (this=0xbfffd160, receiver=0x8601550, 
    event=0xbfffcd60) at /home/kde/kdecvs/kdelibs/kdecore/kapplication.cpp:495
#80 0x4004cc4f in QApplication::sendEvent (receiver=0x8601550, 
    event=0xbfffcd60) at qapplication.h:491
#81 0x40c8c60a in QEventLoop::activateTimers (this=0x824a3d0)
    at kernel/qeventloop_unix.cpp:558
#82 0x40c461b1 in QEventLoop::processEvents (this=0x824a3d0, flags=4)
    at kernel/qeventloop_x11.cpp:389
#83 0x40cb2502 in QEventLoop::enterLoop (this=0x824a3d0)
    at kernel/qeventloop.cpp:198
#84 0x40cb241e in QEventLoop::exec (this=0x824a3d0)
    at kernel/qeventloop.cpp:145
#85 0x40c9e4bb in QApplication::exec (this=0xbfffd160)
    at kernel/qapplication.cpp:2743
#86 0x41831205 in kdemain (argc=2, argv=0x806b5b8)
    at /home/kde/kdecvs/kdebase/konqueror/konq_main.cc:204
#87 0x0804e2d6 in launch (argc=2, _name=0x81996ac "konqueror", 
    args=0x81996bf "\001", cwd=0x0, envc=1, envs=0x81996d0 "", 
    reset_env=false, tty=0x0, avoid_loops=false, 
    startup_id_str=0x81996d4 "linuxfg04;1091415287;61476;28848_TIME26978646")
    at /home/kde/kdecvs/kdelibs/kinit/kinit.cpp:599
#88 0x0804f5ef in handle_launcher_request (sock=8)
    at /home/kde/kdecvs/kdelibs/kinit/kinit.cpp:1163
#89 0x0804fcb8 in handle_requests (waitForPid=0)
    at /home/kde/kdecvs/kdelibs/kinit/kinit.cpp:1364
#90 0x08051194 in main (argc=3, argv=0xbfffd7a4, envp=0xbfffd7b4)
    at /home/kde/kdecvs/kdelibs/kinit/kinit.cpp:1817

hope that helps
Comment 12 Ferdinand Gassauer 2004-08-02 05:01:16 UTC
sorry wrong bug, please disregard comment #11
Comment 13 Ferdinand Gassauer 2004-08-02 05:03:53 UTC
thanks , attachments have names now