diff --git a/src/bin/desklink/MixerControl.cpp b/src/bin/desklink/MixerControl.cpp index ed2c5b101a..54665cb079 100644 --- a/src/bin/desklink/MixerControl.cpp +++ b/src/bin/desklink/MixerControl.cpp @@ -158,6 +158,7 @@ retry: } } else { errorString = "No parameter web"; + fParameterWeb = NULL; } } else { if (!retrying) { diff --git a/src/kits/media/MediaRoster.cpp b/src/kits/media/MediaRoster.cpp index df17e0c1be..4b13a37d85 100644 --- a/src/kits/media/MediaRoster.cpp +++ b/src/kits/media/MediaRoster.cpp @@ -2262,8 +2262,8 @@ BMediaRoster::GetParameterWebFor(const media_node& node, BParameterWeb** _web) } if (reply.size > 0) { // we got a flattened parameter web! - *_web = new (std::nothrow) BParameterWeb(); - if (*_web == NULL) + BParameterWeb* web = new (std::nothrow) BParameterWeb(); + if (web == NULL) rv = B_NO_MEMORY; else { printf("BMediaRoster::GetParameterWebFor Unflattening %" @@ -2272,13 +2272,15 @@ BMediaRoster::GetParameterWebFor(const media_node& node, BParameterWeb** _web) ((uint32*)data)[0], ((uint32*)data)[1], ((uint32*)data)[2], ((uint32*)data)[3]); - rv = (*_web)->Unflatten(reply.code, data, reply.size); - } - if (rv != B_OK) { - ERROR("BMediaRoster::GetParameterWebFor Unflatten failed, " - "%s\n", strerror(rv)); - delete *_web; + rv = web->Unflatten(reply.code, data, reply.size); + if (rv != B_OK) { + ERROR("BMediaRoster::GetParameterWebFor Unflatten failed, " + "%s\n", strerror(rv)); + delete web; + } else + *_web = web; } + delete_area(area); return rv; }