Cleared up error code usage.
This commit is contained in:
parent
57f1e26f36
commit
6f50589c05
@ -77,18 +77,28 @@ static UINT irp_complete(IRP* irp)
|
||||
return error;
|
||||
}
|
||||
|
||||
IRP* irp_new(DEVMAN* devman, wStream* s)
|
||||
IRP* irp_new(DEVMAN* devman, wStream* s, UINT* error)
|
||||
{
|
||||
IRP* irp;
|
||||
DEVICE* device;
|
||||
UINT32 DeviceId;
|
||||
|
||||
if (!Stream_EnsureRemainingCapacity(s, 20))
|
||||
{
|
||||
if (error)
|
||||
*error = CHANNEL_RC_NO_BUFFER;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Stream_Read_UINT32(s, DeviceId); /* DeviceId (4 bytes) */
|
||||
device = devman_get_device_by_id(devman, DeviceId);
|
||||
|
||||
if (!device)
|
||||
{
|
||||
WLog_ERR(TAG, "devman_get_device_by_id failed!");
|
||||
WLog_WARN(TAG, "devman_get_device_by_id failed!");
|
||||
if (error)
|
||||
*error = CHANNEL_RC_OK;
|
||||
|
||||
return NULL;
|
||||
};
|
||||
|
||||
@ -97,6 +107,8 @@ IRP* irp_new(DEVMAN* devman, wStream* s)
|
||||
if (!irp)
|
||||
{
|
||||
WLog_ERR(TAG, "_aligned_malloc failed!");
|
||||
if (error)
|
||||
*error = CHANNEL_RC_NO_MEMORY;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -117,6 +129,8 @@ IRP* irp_new(DEVMAN* devman, wStream* s)
|
||||
{
|
||||
WLog_ERR(TAG, "Stream_New failed!");
|
||||
_aligned_free(irp);
|
||||
if (error)
|
||||
*error = CHANNEL_RC_NO_MEMORY;
|
||||
return NULL;
|
||||
}
|
||||
Stream_Write_UINT16(irp->output, RDPDR_CTYP_CORE); /* Component (2 bytes) */
|
||||
@ -131,5 +145,8 @@ IRP* irp_new(DEVMAN* devman, wStream* s)
|
||||
irp->thread = NULL;
|
||||
irp->cancelled = FALSE;
|
||||
|
||||
if (error)
|
||||
*error = CHANNEL_RC_OK;
|
||||
|
||||
return irp;
|
||||
}
|
||||
|
@ -23,6 +23,6 @@
|
||||
|
||||
#include "rdpdr_main.h"
|
||||
|
||||
IRP* irp_new(DEVMAN* devman, wStream* s);
|
||||
IRP* irp_new(DEVMAN* devman, wStream* s, UINT* error);
|
||||
|
||||
#endif /* FREERDP_CHANNEL_RDPDR_CLIENT_IRP_H */
|
||||
|
@ -497,7 +497,6 @@ static UINT handle_hotplug(rdpdrPlugin* rdpdr)
|
||||
free(drive->Path);
|
||||
free(drive->Name);
|
||||
free(drive);
|
||||
error = CHANNEL_RC_NO_MEMORY;
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
@ -820,7 +819,7 @@ static UINT rdpdr_send_device_list_announce_request(rdpdrPlugin* rdpdr, BOOL use
|
||||
if (!Stream_EnsureRemainingCapacity(s, 20 + data_len))
|
||||
{
|
||||
WLog_ERR(TAG, "Stream_EnsureRemainingCapacity failed!");
|
||||
return CHANNEL_RC_NO_MEMORY;
|
||||
return CHANNEL_RC_NO_BUFFER;
|
||||
}
|
||||
|
||||
Stream_Write_UINT32(s, device->type); /* deviceType */
|
||||
@ -869,12 +868,12 @@ static UINT rdpdr_process_irp(rdpdrPlugin* rdpdr, wStream* s)
|
||||
IRP* irp;
|
||||
UINT error = CHANNEL_RC_OK;
|
||||
|
||||
irp = irp_new(rdpdr->devman, s);
|
||||
irp = irp_new(rdpdr->devman, s, &error);
|
||||
|
||||
if (!irp)
|
||||
{
|
||||
WLog_ERR(TAG, "irp_new failed!");
|
||||
return CHANNEL_RC_NO_MEMORY;
|
||||
WLog_ERR(TAG, "irp_new failed with %lu!", error);
|
||||
return error;
|
||||
}
|
||||
|
||||
IFCALLRET(irp->device->IRPRequest, error, irp->device, irp);
|
||||
@ -1217,7 +1216,7 @@ static UINT rdpdr_virtual_channel_event_data_received(rdpdrPlugin* rdpdr,
|
||||
if (!Stream_EnsureRemainingCapacity(data_in, (int) dataLength))
|
||||
{
|
||||
WLog_ERR(TAG, "Stream_EnsureRemainingCapacity failed!");
|
||||
return CHANNEL_RC_NO_MEMORY;
|
||||
return CHANNEL_RC_NO_BUFFER;
|
||||
}
|
||||
Stream_Write(data_in, pData, dataLength);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user