Closed
Bug 242613
Opened 22 years ago
Closed 22 years ago
Crash [@ EncodeStructParticle] because getEnumerator returned null
Categories
(Core Graveyard :: Web Services, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: timeless, Assigned: timeless)
References
()
Details
(Keywords: crash)
Crash Data
Attachments
(1 file, 1 obsolete file)
|
783 bytes,
patch
|
jst
:
review+
jst
:
superreview+
|
Details | Diff | Splinter Review |
> websrvcs.dll!EncodeStructParticle(nsISOAPEncoding * aEncoding=0x022f7630,
nsIPropertyBag * aPropertyBag=0x02b422b8, nsISchemaParticle *
aParticle=0x00000000, nsISOAPAttachments * aAttachments=0x00000000,
nsIDOMElement * aDestination=0x02b1fabc) Line 891 + 0x3 C++
websrvcs.dll!nsStructEncoder::Encode(nsISOAPEncoding * aEncoding=0x022f7630,
nsIVariant * aSource=0x00000000, const nsAString & aNamespaceURI={...}, const
nsAString & aName={...}, nsISchemaType * aSchemaType=0x00000000,
nsISOAPAttachments * aAttachments=0x00000000, nsIDOMElement *
aDestination=0x02b1f92c, nsIDOMElement * * aReturnValue=0x0012bec8) Line 965
+ 0x13 C++
websrvcs.dll!nsAnyTypeEncoder::Encode(nsISOAPEncoding * aEncoding=0x022f7630,
nsIVariant * aSource=0x02b1f9e8, const nsAString & aNamespaceURI={...}, const
nsAString & aName={...}, nsISchemaType * aSchemaType=0x02b1f6d4,
nsISOAPAttachments * aAttachments=0x00000000, nsIDOMElement *
aDestination=0x02b1f92c, nsIDOMElement * * aReturnValue=0x0012bec8) Line 780
+ 0x21 C++
websrvcs.dll!nsDefaultEncoder::Encode(nsISOAPEncoding * aEncoding=0x022f7630,
nsIVariant * aSource=0x02b1f9e8, const nsAString & aNamespaceURI={...}, const
nsAString & aName={...}, nsISchemaType * aSchemaType=0x00000000,
nsISOAPAttachments * aAttachments=0x00000000, nsIDOMElement *
aDestination=0x02b1f92c, nsIDOMElement * * aReturnValue=0x0012bec8) Line 628
+ 0x23 C++
websrvcs.dll!nsSOAPEncoding::Encode(nsIVariant * aSource=0x02b1f9e8, const
nsAString & aNamespaceURI={...}, const nsAString & aName={...}, nsISchemaType *
aSchemaType=0x00000000, nsISOAPAttachments * aAttachments=0x00000000,
nsIDOMElement * aDestination=0x02b1f92c, nsIDOMElement * * _retval=0x02895170)
Line 317 + 0x1c C++
websrvcs.dll!EncodeArray(nsISOAPEncoding * aEncoding=0x022f7630, nsIVariant *
aSource=0x00000000, nsISchemaType * aSchemaType=0x022efea8, nsISOAPAttachments *
aAttachments=0x022efea8, nsIDOMElement * aArray=0x00000000, unsigned int
aDimensionCount=0x00000000, unsigned int * aDimensionSizes=0x02b1f92c) Line
1289 C++
websrvcs.dll!nsArrayEncoder::Encode(nsISOAPEncoding * aEncoding=0x02895468,
nsIVariant * aSource=0x022f7630, const nsAString & aNamespaceURI={...}, const
nsAString & aName={...}, nsISchemaType * aSchemaType=0x022efea8,
nsISOAPAttachments * aAttachments=0x00000000, nsIDOMElement *
aDestination=0x00000000, nsIDOMElement * * aReturnValue=0x02b1f92c) Line 1432
+ 0x1d C++
websrvcs.dll!nsAnyTypeEncoder::Encode(nsISOAPEncoding * aEncoding=0x022f7630,
nsIVariant * aSource=0x02b1e970, const nsAString & aNamespaceURI={...}, const
nsAString & aName={...}, nsISchemaType * aSchemaType=0x02b1f6d4,
nsISOAPAttachments * aAttachments=0x00000000, nsIDOMElement *
aDestination=0x02b1f794, nsIDOMElement * * aReturnValue=0x0012cf08) Line 780
+ 0x21 C++
websrvcs.dll!nsDefaultEncoder::Encode(nsISOAPEncoding * aEncoding=0x022f7630,
nsIVariant * aSource=0x02b1e970, const nsAString & aNamespaceURI={...}, const
nsAString & aName={...}, nsISchemaType * aSchemaType=0x00000000,
nsISOAPAttachments * aAttachments=0x00000000, nsIDOMElement *
aDestination=0x02b1f794, nsIDOMElement * * aReturnValue=0x0012cf08) Line 628
+ 0x23 C++
websrvcs.dll!nsSOAPEncoding::Encode(nsIVariant * aSource=0x02b1e970, const
nsAString & aNamespaceURI={...}, const nsAString & aName={...}, nsISchemaType *
aSchemaType=0x00000000, nsISOAPAttachments * aAttachments=0x00000000,
nsIDOMElement * aDestination=0x02b1f794, nsIDOMElement * * _retval=0x02895170)
Line 317 + 0x1c C++
websrvcs.dll!nsSOAPMessage::Encode(unsigned short aVersion=0x7630, const
nsAString & aMethodName={...}, const nsAString & aTargetObjectURI={...},
unsigned int aHeaderBlockCount=0x022efea8, nsISOAPHeaderBlock * *
aHeaderBlocks=0x00000000, unsigned int aParameterCount=0x00000000,
nsISOAPParameter * * aParameters=0x02b1f92c) Line 504 C++
xpcom.dll!XPTC_InvokeByIndex(nsISupports * that=0x02a56f38, unsigned int
methodIndex=0x0000000b, unsigned int paramCount=0x00000007, nsXPTCVariant *
params=0x0012cf94) Line 102 C++
I have some bad soap code which triggers:
nsSOAPPropertyBagEnumerator::Init(nsSOAPPropertyBag* aPropertyBag)
{
PRUint32 count = aPropertyBag->mProperties.EnumerateRead(PropertyBagEnumFunc,
&mProperties);
// Check if all the properties got copied to the array.
if (count != aPropertyBag->mProperties.Count()) {
return NS_ERROR_FAILURE;
Which triggers:
nsSOAPPropertyBag::GetEnumerator(nsISimpleEnumerator * *aEnumerator)
{
NS_ENSURE_ARG_POINTER(aEnumerator);
nsRefPtr<nsSOAPPropertyBagEnumerator> enumerator = new
nsSOAPPropertyBagEnumerator();
NS_ENSURE_TRUE(enumerator, NS_ERROR_OUT_OF_MEMORY);
if (!enumerator->Init(this)) {
return NS_ERROR_FAILURE;
Which causes:
> websrvcs.dll!EncodeStructParticle(nsISOAPEncoding * aEncoding=0x026a5a80,
nsIPropertyBag * aPropertyBag=0x02818fa8, nsISchemaParticle *
aParticle=0x00000000, nsISOAPAttachments * aAttachments=0x00000000,
nsIDOMElement * aDestination=0x027a8de4) Line 891 C++
...
nsCOMPtr<nsISimpleEnumerator> e;
aPropertyBag->GetEnumerator(getter_AddRefs(e));
// e is null, rv which was dropped is failure.
PRBool more;
rc = e->HasMoreElements(&more);
// e was null, so this crashed.
Attachment #147684 -
Flags: superreview?(jst)
Attachment #147684 -
Flags: review?(jst)
Updated•22 years ago
|
Attachment #147684 -
Flags: superreview?(jst)
Attachment #147684 -
Flags: superreview+
Attachment #147684 -
Flags: review?(jst)
Attachment #147684 -
Flags: review+
Comment on attachment 147684 [details] [diff] [review]
check rv
mozilla/extensions/webservices/soap/src/nsDefaultSOAPEncoder.cpp 1.81
Attachment #147684 -
Attachment is obsolete: true
Attachment #147771 -
Flags: superreview?(jst)
Attachment #147771 -
Flags: review?(jst)
Comment 4•22 years ago
|
||
Comment on attachment 147771 [details] [diff] [review]
Init returns an nsresult
r+sr=jst
Attachment #147771 -
Flags: superreview?(jst)
Attachment #147771 -
Flags: superreview+
Attachment #147771 -
Flags: review?(jst)
Attachment #147771 -
Flags: review+
Comment 5•22 years ago
|
||
(In reply to comment #3)
> Created an attachment (id=147771)
> Init returns an nsresult
>
Thanks for cleaning up after me.
mozilla/extensions/webservices/soap/src/nsSOAPPropertyBag.cpp 1.17
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Updated•15 years ago
|
Crash Signature: [@ EncodeStructParticle]
Updated•8 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•