coverity: fixed resolution leak issues
This commit is contained in:
parent
c64b154475
commit
3bb31876e7
@ -233,7 +233,7 @@ l_file_read_section(int fd, int max_file_size, const char *section,
|
|||||||
int len;
|
int len;
|
||||||
int index;
|
int index;
|
||||||
int file_size;
|
int file_size;
|
||||||
|
|
||||||
data = (char *) g_malloc(FILE_MAX_LINE_BYTES * 3, 0);
|
data = (char *) g_malloc(FILE_MAX_LINE_BYTES * 3, 0);
|
||||||
text = data;
|
text = data;
|
||||||
name = text + FILE_MAX_LINE_BYTES;
|
name = text + FILE_MAX_LINE_BYTES;
|
||||||
@ -364,7 +364,7 @@ file_by_name_read_sections(const char *file_name, struct list *names)
|
|||||||
|
|
||||||
fd = g_file_open(file_name);
|
fd = g_file_open(file_name);
|
||||||
|
|
||||||
if (fd < 1)
|
if (fd < 0)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -405,7 +405,7 @@ file_by_name_read_section(const char *file_name, const char *section,
|
|||||||
|
|
||||||
fd = g_file_open(file_name);
|
fd = g_file_open(file_name);
|
||||||
|
|
||||||
if (fd < 1)
|
if (fd < 0)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -284,6 +284,7 @@ internalReadConfiguration(const char *inFilename, const char *applicationName)
|
|||||||
|
|
||||||
if (ret != LOG_STARTUP_OK)
|
if (ret != LOG_STARTUP_OK)
|
||||||
{
|
{
|
||||||
|
g_file_close(fd);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -301,6 +302,7 @@ internalReadConfiguration(const char *inFilename, const char *applicationName)
|
|||||||
|
|
||||||
if (ret != LOG_STARTUP_OK)
|
if (ret != LOG_STARTUP_OK)
|
||||||
{
|
{
|
||||||
|
g_file_close(fd);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,7 +217,7 @@ sign_key(char *e_data, int e_len, char *n_data, int n_len,
|
|||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n_len == 64)
|
if (n_len == 64)
|
||||||
{
|
{
|
||||||
key = (char *)g_malloc(184, 0);
|
key = (char *)g_malloc(184, 0);
|
||||||
@ -367,11 +367,12 @@ save_all(char *e_data, int e_len, char *n_data, int n_len,
|
|||||||
|
|
||||||
fd = g_file_open(filename);
|
fd = g_file_open(filename);
|
||||||
|
|
||||||
if (fd > 0)
|
if (fd != -1)
|
||||||
{
|
{
|
||||||
if (g_file_write(fd, "[keys]\n", 7) == -1)
|
if (g_file_write(fd, "[keys]\n", 7) == -1)
|
||||||
{
|
{
|
||||||
g_writeln("problem writing to %s, maybe no rights", filename);
|
g_writeln("problem writing to %s, maybe no rights", filename);
|
||||||
|
g_file_close(fd);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,15 +308,18 @@ libxrdp_send_palette(struct xrdp_session *session, int *palette)
|
|||||||
}
|
}
|
||||||
|
|
||||||
DEBUG(("libxrdp_send_palette sending palette"));
|
DEBUG(("libxrdp_send_palette sending palette"));
|
||||||
|
|
||||||
/* clear orders */
|
/* clear orders */
|
||||||
libxrdp_orders_force_send(session);
|
libxrdp_orders_force_send(session);
|
||||||
make_stream(s);
|
make_stream(s);
|
||||||
init_stream(s, 8192);
|
init_stream(s, 8192);
|
||||||
|
|
||||||
if (session->client_info->use_fast_path & 1) /* fastpath output supported */
|
if (session->client_info->use_fast_path & 1) /* fastpath output supported */
|
||||||
{
|
{
|
||||||
LLOGLN(10, ("libxrdp_send_palette: fastpath"));
|
LLOGLN(10, ("libxrdp_send_palette: fastpath"));
|
||||||
if (xrdp_rdp_init_fastpath((struct xrdp_rdp *)session->rdp, s) != 0)
|
if (xrdp_rdp_init_fastpath((struct xrdp_rdp *)session->rdp, s) != 0)
|
||||||
{
|
{
|
||||||
|
free_stream(s);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -345,6 +348,7 @@ libxrdp_send_palette(struct xrdp_session *session, int *palette)
|
|||||||
if (xrdp_rdp_send_fastpath((struct xrdp_rdp *)session->rdp, s,
|
if (xrdp_rdp_send_fastpath((struct xrdp_rdp *)session->rdp, s,
|
||||||
FASTPATH_UPDATETYPE_PALETTE) != 0)
|
FASTPATH_UPDATETYPE_PALETTE) != 0)
|
||||||
{
|
{
|
||||||
|
free_stream(s);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -354,6 +358,7 @@ libxrdp_send_palette(struct xrdp_session *session, int *palette)
|
|||||||
RDP_DATA_PDU_UPDATE);
|
RDP_DATA_PDU_UPDATE);
|
||||||
}
|
}
|
||||||
free_stream(s);
|
free_stream(s);
|
||||||
|
|
||||||
/* send the orders palette too */
|
/* send the orders palette too */
|
||||||
libxrdp_orders_init(session);
|
libxrdp_orders_init(session);
|
||||||
libxrdp_orders_send_palette(session, palette, 0);
|
libxrdp_orders_send_palette(session, palette, 0);
|
||||||
@ -775,6 +780,7 @@ libxrdp_set_pointer(struct xrdp_session *session, int cache_idx)
|
|||||||
if (xrdp_rdp_send_fastpath((struct xrdp_rdp *)session->rdp, s,
|
if (xrdp_rdp_send_fastpath((struct xrdp_rdp *)session->rdp, s,
|
||||||
FASTPATH_UPDATETYPE_CACHED) != 0)
|
FASTPATH_UPDATETYPE_CACHED) != 0)
|
||||||
{
|
{
|
||||||
|
free_stream(s);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -226,6 +226,7 @@ xrdp_iso_send_cc(struct xrdp_iso *self)
|
|||||||
|
|
||||||
if (trans_force_write_s(self->trans, s) != 0)
|
if (trans_force_write_s(self->trans, s) != 0)
|
||||||
{
|
{
|
||||||
|
free_stream(s);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -705,7 +705,8 @@ xrdp_rdp_send_data_update_sync(struct xrdp_rdp *self)
|
|||||||
LLOGLN(10, ("xrdp_rdp_send_data_update_sync: fastpath"));
|
LLOGLN(10, ("xrdp_rdp_send_data_update_sync: fastpath"));
|
||||||
if (xrdp_rdp_init_fastpath(self, s) != 0)
|
if (xrdp_rdp_init_fastpath(self, s) != 0)
|
||||||
{
|
{
|
||||||
return 1;
|
free_stream(s);
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else /* slowpath */
|
else /* slowpath */
|
||||||
@ -727,6 +728,7 @@ xrdp_rdp_send_data_update_sync(struct xrdp_rdp *self)
|
|||||||
if (xrdp_rdp_send_fastpath(self, s,
|
if (xrdp_rdp_send_fastpath(self, s,
|
||||||
FASTPATH_UPDATETYPE_SYNCHRONIZE) != 0)
|
FASTPATH_UPDATETYPE_SYNCHRONIZE) != 0)
|
||||||
{
|
{
|
||||||
|
free_stream(s);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -771,7 +771,7 @@ xrdp_sec_send_media_lic_response(struct xrdp_sec *self)
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
static void APP_CC
|
static void APP_CC
|
||||||
xrdp_sec_rsa_op(struct xrdp_sec *self, char *out, char *in, int in_bytes,
|
xrdp_sec_rsa_op(struct xrdp_sec *self, char *out, char *in, int in_bytes,
|
||||||
char *mod, char *exp)
|
char *mod, char *exp)
|
||||||
{
|
{
|
||||||
ssl_mod_exp(out, self->rsa_key_bytes, in, in_bytes,
|
ssl_mod_exp(out, self->rsa_key_bytes, in, in_bytes,
|
||||||
@ -1616,7 +1616,6 @@ xrdp_sec_process_mcs_data_channels(struct xrdp_sec *self, struct stream *s)
|
|||||||
{
|
{
|
||||||
int num_channels;
|
int num_channels;
|
||||||
int index;
|
int index;
|
||||||
struct mcs_channel_item *channel_item;
|
|
||||||
|
|
||||||
DEBUG(("processing channels, channel_code is %d", self->channel_code));
|
DEBUG(("processing channels, channel_code is %d", self->channel_code));
|
||||||
|
|
||||||
@ -1641,16 +1640,19 @@ xrdp_sec_process_mcs_data_channels(struct xrdp_sec *self, struct stream *s)
|
|||||||
|
|
||||||
for (index = 0; index < num_channels; index++)
|
for (index = 0; index < num_channels; index++)
|
||||||
{
|
{
|
||||||
|
struct mcs_channel_item *channel_item;
|
||||||
|
|
||||||
channel_item = (struct mcs_channel_item *)
|
channel_item = (struct mcs_channel_item *)
|
||||||
g_malloc(sizeof(struct mcs_channel_item), 1);
|
g_malloc(sizeof(struct mcs_channel_item), 1);
|
||||||
if (!s_check_rem(s, 12))
|
if (!s_check_rem(s, 12))
|
||||||
{
|
{
|
||||||
|
g_free(channel_item);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
in_uint8a(s, channel_item->name, 8);
|
in_uint8a(s, channel_item->name, 8);
|
||||||
in_uint32_le(s, channel_item->flags);
|
in_uint32_le(s, channel_item->flags);
|
||||||
channel_item->chanid = MCS_GLOBAL_CHANNEL + (index + 1);
|
channel_item->chanid = MCS_GLOBAL_CHANNEL + (index + 1);
|
||||||
list_add_item(self->mcs_layer->channel_list, (tintptr)channel_item);
|
list_add_item(self->mcs_layer->channel_list, (tintptr) channel_item);
|
||||||
DEBUG(("got channel flags %8.8x name %s", channel_item->flags,
|
DEBUG(("got channel flags %8.8x name %s", channel_item->flags,
|
||||||
channel_item->name));
|
channel_item->name));
|
||||||
}
|
}
|
||||||
@ -1852,7 +1854,7 @@ xrdp_sec_out_mcs_data(struct xrdp_sec *self)
|
|||||||
gcc_size_ptr = s->p; /* RDPGCCUserDataResponseLength */
|
gcc_size_ptr = s->p; /* RDPGCCUserDataResponseLength */
|
||||||
out_uint8s(s, 2);
|
out_uint8s(s, 2);
|
||||||
ud_ptr = s->p; /* User Data */
|
ud_ptr = s->p; /* User Data */
|
||||||
|
|
||||||
out_uint16_le(s, SEC_TAG_SRV_INFO);
|
out_uint16_le(s, SEC_TAG_SRV_INFO);
|
||||||
if (self->mcs_layer->iso_layer->selectedProtocol != -1)
|
if (self->mcs_layer->iso_layer->selectedProtocol != -1)
|
||||||
{
|
{
|
||||||
@ -1866,7 +1868,7 @@ xrdp_sec_out_mcs_data(struct xrdp_sec *self)
|
|||||||
out_uint8(s, 0);
|
out_uint8(s, 0);
|
||||||
out_uint8(s, 8);
|
out_uint8(s, 8);
|
||||||
out_uint8(s, 0);
|
out_uint8(s, 0);
|
||||||
if (self->mcs_layer->iso_layer->selectedProtocol != -1)
|
if (self->mcs_layer->iso_layer->selectedProtocol != -1)
|
||||||
{
|
{
|
||||||
/* ReqeustedProtocol */
|
/* ReqeustedProtocol */
|
||||||
out_uint32_le(s, self->mcs_layer->iso_layer->selectedProtocol);
|
out_uint32_le(s, self->mcs_layer->iso_layer->selectedProtocol);
|
||||||
@ -2060,7 +2062,7 @@ xrdp_sec_incoming(struct xrdp_sec *self)
|
|||||||
{
|
{
|
||||||
item = (char *)list_get_item(items, index);
|
item = (char *)list_get_item(items, index);
|
||||||
value = (char *)list_get_item(values, index);
|
value = (char *)list_get_item(values, index);
|
||||||
|
|
||||||
if (g_strcasecmp(item, "pub_exp") == 0)
|
if (g_strcasecmp(item, "pub_exp") == 0)
|
||||||
{
|
{
|
||||||
hex_str_to_bin(value, self->pub_exp, 4);
|
hex_str_to_bin(value, self->pub_exp, 4);
|
||||||
|
@ -73,7 +73,7 @@ int xfuse_create_share(tui32 device_id, char *dirname) { r
|
|||||||
void xfuse_devredir_cb_open_file(void *vp, tui32 IoStatus, tui32 DeviceId, tui32 FileId) {}
|
void xfuse_devredir_cb_open_file(void *vp, tui32 IoStatus, tui32 DeviceId, tui32 FileId) {}
|
||||||
void xfuse_devredir_cb_write_file(void *vp, char *buf, size_t length) {}
|
void xfuse_devredir_cb_write_file(void *vp, char *buf, size_t length) {}
|
||||||
void xfuse_devredir_cb_read_file(void *vp, char *buf, size_t length) {}
|
void xfuse_devredir_cb_read_file(void *vp, char *buf, size_t length) {}
|
||||||
void xfuse_devredir_cb_enum_dir(void *vp, struct xrdp_inode *xinode) {}
|
int xfuse_devredir_cb_enum_dir(void *vp, struct xrdp_inode *xinode) {}
|
||||||
void xfuse_devredir_cb_enum_dir_done(void *vp, tui32 IoStatus) {}
|
void xfuse_devredir_cb_enum_dir_done(void *vp, tui32 IoStatus) {}
|
||||||
void xfuse_devredir_cb_rmdir_or_file(void *vp, tui32 IoStatus) {}
|
void xfuse_devredir_cb_rmdir_or_file(void *vp, tui32 IoStatus) {}
|
||||||
void xfuse_devredir_cb_rename_file(void *vp, tui32 IoStatus) {}
|
void xfuse_devredir_cb_rename_file(void *vp, tui32 IoStatus) {}
|
||||||
@ -1422,7 +1422,7 @@ static void xfuse_update_xrdpfs_size()
|
|||||||
* Add a file or directory to xrdp file system
|
* Add a file or directory to xrdp file system
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
void xfuse_devredir_cb_enum_dir(void *vp, struct xrdp_inode *xinode)
|
int xfuse_devredir_cb_enum_dir(void *vp, struct xrdp_inode *xinode)
|
||||||
{
|
{
|
||||||
XFUSE_INFO *fip = (XFUSE_INFO *) vp;
|
XFUSE_INFO *fip = (XFUSE_INFO *) vp;
|
||||||
XRDP_INODE *xip = NULL;
|
XRDP_INODE *xip = NULL;
|
||||||
@ -1430,13 +1430,14 @@ void xfuse_devredir_cb_enum_dir(void *vp, struct xrdp_inode *xinode)
|
|||||||
if ((fip == NULL) || (xinode == NULL))
|
if ((fip == NULL) || (xinode == NULL))
|
||||||
{
|
{
|
||||||
log_error("fip or xinode are NULL");
|
log_error("fip or xinode are NULL");
|
||||||
return;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!xfuse_is_inode_valid(fip->inode))
|
if (!xfuse_is_inode_valid(fip->inode))
|
||||||
{
|
{
|
||||||
log_error("inode %d is not valid", fip->inode);
|
log_error("inode %d is not valid", fip->inode);
|
||||||
return;
|
g_free(xinode);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
log_debug("parent_inode=%d name=%s", fip->inode, xinode->name);
|
log_debug("parent_inode=%d name=%s", fip->inode, xinode->name);
|
||||||
@ -1444,8 +1445,8 @@ void xfuse_devredir_cb_enum_dir(void *vp, struct xrdp_inode *xinode)
|
|||||||
/* if filename is . or .. don't add it */
|
/* if filename is . or .. don't add it */
|
||||||
if ((strcmp(xinode->name, ".") == 0) || (strcmp(xinode->name, "..") == 0))
|
if ((strcmp(xinode->name, ".") == 0) || (strcmp(xinode->name, "..") == 0))
|
||||||
{
|
{
|
||||||
free(xinode);
|
g_free(xinode);
|
||||||
return;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
xfuse_dump_fs();
|
xfuse_dump_fs();
|
||||||
@ -1454,9 +1455,9 @@ void xfuse_devredir_cb_enum_dir(void *vp, struct xrdp_inode *xinode)
|
|||||||
{
|
{
|
||||||
log_debug("inode=%d name=%s already exists in xrdp_fs; not adding it",
|
log_debug("inode=%d name=%s already exists in xrdp_fs; not adding it",
|
||||||
fip->inode, xinode->name);
|
fip->inode, xinode->name);
|
||||||
free(xinode);
|
g_free(xinode);
|
||||||
xip->stale = 0;
|
xip->stale = 0;
|
||||||
return;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
xinode->parent_inode = fip->inode;
|
xinode->parent_inode = fip->inode;
|
||||||
@ -1473,6 +1474,7 @@ void xfuse_devredir_cb_enum_dir(void *vp, struct xrdp_inode *xinode)
|
|||||||
xfuse_update_xrdpfs_size();
|
xfuse_update_xrdpfs_size();
|
||||||
|
|
||||||
xfuse_dump_fs();
|
xfuse_dump_fs();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -57,7 +57,7 @@ int xfuse_file_contents_size(int stream_id, int file_size);
|
|||||||
int xfuse_add_clip_dir_item(char *filename, int flags, int size, int lindex);
|
int xfuse_add_clip_dir_item(char *filename, int flags, int size, int lindex);
|
||||||
|
|
||||||
/* functions that are invoked from devredir */
|
/* functions that are invoked from devredir */
|
||||||
void xfuse_devredir_cb_enum_dir(void *vp, struct xrdp_inode *xinode);
|
int xfuse_devredir_cb_enum_dir(void *vp, struct xrdp_inode *xinode);
|
||||||
void xfuse_devredir_cb_enum_dir_done(void *vp, tui32 IoStatus);
|
void xfuse_devredir_cb_enum_dir_done(void *vp, tui32 IoStatus);
|
||||||
void xfuse_devredir_cb_open_file(void *vp, tui32 IoStatus, tui32 DeviceId, tui32 FileId);
|
void xfuse_devredir_cb_open_file(void *vp, tui32 IoStatus, tui32 DeviceId, tui32 FileId);
|
||||||
void xfuse_devredir_cb_read_file(void *vp, char *buf, size_t length);
|
void xfuse_devredir_cb_read_file(void *vp, char *buf, size_t length);
|
||||||
|
@ -879,7 +879,7 @@ dev_redir_proc_query_dir_response(IRP *irp,
|
|||||||
tui32 IoStatus)
|
tui32 IoStatus)
|
||||||
{
|
{
|
||||||
FUSE_DATA *fuse_data = NULL;
|
FUSE_DATA *fuse_data = NULL;
|
||||||
XRDP_INODE *xinode = NULL;
|
XRDP_INODE *xinode;
|
||||||
|
|
||||||
tui32 Length;
|
tui32 Length;
|
||||||
tui32 NextEntryOffset;
|
tui32 NextEntryOffset;
|
||||||
@ -1017,6 +1017,7 @@ dev_redir_get_dir_listing(void *fusep, tui32 device_id, char *path)
|
|||||||
irp->CompletionId = g_completion_id++;
|
irp->CompletionId = g_completion_id++;
|
||||||
irp->completion_type = CID_CREATE_DIR_REQ;
|
irp->completion_type = CID_CREATE_DIR_REQ;
|
||||||
irp->DeviceId = device_id;
|
irp->DeviceId = device_id;
|
||||||
|
|
||||||
strcpy(irp->pathname, path);
|
strcpy(irp->pathname, path);
|
||||||
devredir_fuse_data_enqueue(irp, fusep);
|
devredir_fuse_data_enqueue(irp, fusep);
|
||||||
|
|
||||||
@ -1069,6 +1070,7 @@ dev_redir_file_open(void *fusep, tui32 device_id, char *path,
|
|||||||
|
|
||||||
irp->CompletionId = g_completion_id++;
|
irp->CompletionId = g_completion_id++;
|
||||||
irp->DeviceId = device_id;
|
irp->DeviceId = device_id;
|
||||||
|
|
||||||
strcpy(irp->pathname, path);
|
strcpy(irp->pathname, path);
|
||||||
devredir_fuse_data_enqueue(irp, fusep);
|
devredir_fuse_data_enqueue(irp, fusep);
|
||||||
|
|
||||||
@ -1174,6 +1176,7 @@ devredir_rmdir_or_file(void *fusep, tui32 device_id, char *path, int mode)
|
|||||||
irp->CompletionId = g_completion_id++;
|
irp->CompletionId = g_completion_id++;
|
||||||
irp->completion_type = CID_RMDIR_OR_FILE;
|
irp->completion_type = CID_RMDIR_OR_FILE;
|
||||||
irp->DeviceId = device_id;
|
irp->DeviceId = device_id;
|
||||||
|
|
||||||
strcpy(irp->pathname, path);
|
strcpy(irp->pathname, path);
|
||||||
devredir_fuse_data_enqueue(irp, fusep);
|
devredir_fuse_data_enqueue(irp, fusep);
|
||||||
|
|
||||||
@ -1216,6 +1219,7 @@ devredir_file_read(void *fusep, tui32 DeviceId, tui32 FileId,
|
|||||||
{
|
{
|
||||||
log_error("no IRP found with FileId = %d", FileId);
|
log_error("no IRP found with FileId = %d", FileId);
|
||||||
xfuse_devredir_cb_read_file(fusep, NULL, 0);
|
xfuse_devredir_cb_read_file(fusep, NULL, 0);
|
||||||
|
xstream_free(s);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1224,6 +1228,7 @@ devredir_file_read(void *fusep, tui32 DeviceId, tui32 FileId,
|
|||||||
{
|
{
|
||||||
/* system out of memory */
|
/* system out of memory */
|
||||||
xfuse_devredir_cb_read_file(fusep, NULL, 0);
|
xfuse_devredir_cb_read_file(fusep, NULL, 0);
|
||||||
|
xstream_free(s);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
new_irp->FileId = 0;
|
new_irp->FileId = 0;
|
||||||
@ -1268,6 +1273,7 @@ dev_redir_file_write(void *fusep, tui32 DeviceId, tui32 FileId,
|
|||||||
{
|
{
|
||||||
log_error("no IRP found with FileId = %d", FileId);
|
log_error("no IRP found with FileId = %d", FileId);
|
||||||
xfuse_devredir_cb_write_file(fusep, NULL, 0);
|
xfuse_devredir_cb_write_file(fusep, NULL, 0);
|
||||||
|
xstream_free(s);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1276,6 +1282,7 @@ dev_redir_file_write(void *fusep, tui32 DeviceId, tui32 FileId,
|
|||||||
{
|
{
|
||||||
/* system out of memory */
|
/* system out of memory */
|
||||||
xfuse_devredir_cb_write_file(fusep, NULL, 0);
|
xfuse_devredir_cb_write_file(fusep, NULL, 0);
|
||||||
|
xstream_free(s);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
new_irp->FileId = 0;
|
new_irp->FileId = 0;
|
||||||
|
@ -1254,6 +1254,7 @@ rail_win_send_text(Window win)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
LOG(0, ("chansrv::rail_win_send_text: error rail_get_window_data_safe failed"));
|
LOG(0, ("chansrv::rail_win_send_text: error rail_get_window_data_safe failed"));
|
||||||
|
g_free(data);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (data && len > 0)
|
if (data && len > 0)
|
||||||
|
@ -861,11 +861,6 @@ scard_make_new_ioctl(IRP *irp, tui32 ioctl)
|
|||||||
struct stream *s;
|
struct stream *s;
|
||||||
|
|
||||||
xstream_new(s, 1024 * 4);
|
xstream_new(s, 1024 * 4);
|
||||||
if (s == NULL)
|
|
||||||
{
|
|
||||||
log_error("system out of memory");
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
devredir_insert_DeviceIoRequest(s,
|
devredir_insert_DeviceIoRequest(s,
|
||||||
irp->DeviceId,
|
irp->DeviceId,
|
||||||
|
@ -603,6 +603,7 @@ scard_process_list_readers(struct trans *con, struct stream *in_s)
|
|||||||
{
|
{
|
||||||
LLOGLN(0, ("scard_process_list_readers: "
|
LLOGLN(0, ("scard_process_list_readers: "
|
||||||
"get_pcsc_context_by_app_context failed"));
|
"get_pcsc_context_by_app_context failed"));
|
||||||
|
g_free(groups);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
pcscListReaders = g_malloc(sizeof(struct pcsc_list_readers), 1);
|
pcscListReaders = g_malloc(sizeof(struct pcsc_list_readers), 1);
|
||||||
@ -1489,6 +1490,7 @@ scard_process_get_status_change(struct trans *con, struct stream *in_s)
|
|||||||
{
|
{
|
||||||
LLOGLN(0, ("scard_process_get_status_change: "
|
LLOGLN(0, ("scard_process_get_status_change: "
|
||||||
"get_pcsc_context_by_app_context failed"));
|
"get_pcsc_context_by_app_context failed"));
|
||||||
|
g_free(rsa);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
scard_send_get_status_change(user_data,
|
scard_send_get_status_change(user_data,
|
||||||
|
@ -1189,7 +1189,6 @@ sound_sndsrvr_source_data_in(struct trans *trans)
|
|||||||
s_mark_end(s);
|
s_mark_end(s);
|
||||||
|
|
||||||
trans_force_write_s(trans, s);
|
trans_force_write_s(trans, s);
|
||||||
xstream_free(s);
|
|
||||||
}
|
}
|
||||||
else if (cmd == PA_CMD_START_REC)
|
else if (cmd == PA_CMD_START_REC)
|
||||||
{
|
{
|
||||||
@ -1200,5 +1199,7 @@ sound_sndsrvr_source_data_in(struct trans *trans)
|
|||||||
sound_input_stop_recording();
|
sound_input_stop_recording();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xstream_free(s);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -215,6 +215,7 @@ scp_v1c_get_session_list(struct SCP_CONNECTION *c, int *scount,
|
|||||||
|
|
||||||
if (cmd != 42)
|
if (cmd != 42)
|
||||||
{
|
{
|
||||||
|
g_free(ds);
|
||||||
return SCP_CLIENT_STATE_SEQUENCE_ERR;
|
return SCP_CLIENT_STATE_SEQUENCE_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,6 +164,7 @@ scp_v1c_mng_get_session_list(struct SCP_CONNECTION *c, int *scount,
|
|||||||
if (0 != scp_tcp_force_recv(c->in_sck, c->in_s->data, size - 8))
|
if (0 != scp_tcp_force_recv(c->in_sck, c->in_s->data, size - 8))
|
||||||
{
|
{
|
||||||
log_message(LOG_LEVEL_WARNING, "[v1c_mng:%d] connection aborted: network error", __LINE__);
|
log_message(LOG_LEVEL_WARNING, "[v1c_mng:%d] connection aborted: network error", __LINE__);
|
||||||
|
g_free(ds);
|
||||||
return SCP_CLIENT_STATE_NETWORK_ERR;
|
return SCP_CLIENT_STATE_NETWORK_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,6 +181,7 @@ scp_v1c_mng_get_session_list(struct SCP_CONNECTION *c, int *scount,
|
|||||||
if (cmd != SCP_CMD_MNG_LIST) /* session list */
|
if (cmd != SCP_CMD_MNG_LIST) /* session list */
|
||||||
{
|
{
|
||||||
log_message(LOG_LEVEL_WARNING, "[v1c_mng:%d] connection aborted: sequence error", __LINE__);
|
log_message(LOG_LEVEL_WARNING, "[v1c_mng:%d] connection aborted: sequence error", __LINE__);
|
||||||
|
g_free(ds);
|
||||||
return SCP_CLIENT_STATE_SEQUENCE_ERR;
|
return SCP_CLIENT_STATE_SEQUENCE_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -195,8 +195,6 @@ scp_v1_process(struct SCP_CONNECTION *c, struct SCP_SESSION *s)
|
|||||||
parseCommonStates(e, "scp_v1s_list_sessions()");
|
parseCommonStates(e, "scp_v1s_list_sessions()");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free(slist);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* resource management */
|
/* resource management */
|
||||||
@ -208,6 +206,7 @@ scp_v1_process(struct SCP_CONNECTION *c, struct SCP_SESSION *s)
|
|||||||
/* cleanup */
|
/* cleanup */
|
||||||
scp_session_destroy(s);
|
scp_session_destroy(s);
|
||||||
auth_end(data);
|
auth_end(data);
|
||||||
|
g_free(slist);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void parseCommonStates(enum SCP_SERVER_STATES_E e, char *f)
|
static void parseCommonStates(enum SCP_SERVER_STATES_E e, char *f)
|
||||||
|
@ -759,8 +759,12 @@ session_start_fork(int width, int height, int bpp, char *username,
|
|||||||
|
|
||||||
/*THREAD-FIX release chain lock */
|
/*THREAD-FIX release chain lock */
|
||||||
lock_chain_release();
|
lock_chain_release();
|
||||||
|
|
||||||
|
return display;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_free(temp->item);
|
||||||
|
g_free(temp);
|
||||||
return display;
|
return display;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1003,6 +1007,7 @@ session_get_bypid(int pid)
|
|||||||
"pid %d is null!", pid);
|
"pid %d is null!", pid);
|
||||||
/*THREAD-FIX release chain lock */
|
/*THREAD-FIX release chain lock */
|
||||||
lock_chain_release();
|
lock_chain_release();
|
||||||
|
g_free(dummy);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1021,6 +1026,7 @@ session_get_bypid(int pid)
|
|||||||
|
|
||||||
/*THREAD-FIX release chain lock */
|
/*THREAD-FIX release chain lock */
|
||||||
lock_chain_release();
|
lock_chain_release();
|
||||||
|
g_free(dummy);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,6 +86,7 @@ sig_sesman_reload_cfg(int sig)
|
|||||||
if (config_read(cfg) != 0)
|
if (config_read(cfg) != 0)
|
||||||
{
|
{
|
||||||
log_message(LOG_LEVEL_ERROR, "error reading config - keeping old cfg");
|
log_message(LOG_LEVEL_ERROR, "error reading config - keeping old cfg");
|
||||||
|
g_free(cfg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,16 +179,16 @@ void cmndList(struct SCP_CONNECTION *c)
|
|||||||
(dsl[idx]).idle_days, (dsl[idx]).idle_hours, (dsl[idx]).idle_minutes, \
|
(dsl[idx]).idle_days, (dsl[idx]).idle_hours, (dsl[idx]).idle_minutes, \
|
||||||
(dsl[idx]).conn_year, (dsl[idx]).conn_month, (dsl[idx]).conn_day, (dsl[idx]).conn_hour, (dsl[idx]).conn_minute);
|
(dsl[idx]).conn_year, (dsl[idx]).conn_month, (dsl[idx]).conn_day, (dsl[idx]).conn_hour, (dsl[idx]).conn_minute);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 != dsl)
|
|
||||||
{
|
|
||||||
g_free(dsl);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("No sessions.\n");
|
printf("No sessions.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (0 != dsl)
|
||||||
|
{
|
||||||
|
g_free(dsl);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmndKill(struct SCP_CONNECTION *c, struct SCP_SESSION *s)
|
void cmndKill(struct SCP_CONNECTION *c, struct SCP_SESSION *s)
|
||||||
|
@ -231,7 +231,7 @@ get_keymaps(int keylayout, struct xrdp_keymap *keymap)
|
|||||||
{
|
{
|
||||||
fd = g_file_open(filename);
|
fd = g_file_open(filename);
|
||||||
|
|
||||||
if (fd > 0)
|
if (fd != -1)
|
||||||
{
|
{
|
||||||
lkeymap = (struct xrdp_keymap *)g_malloc(sizeof(struct xrdp_keymap), 0);
|
lkeymap = (struct xrdp_keymap *)g_malloc(sizeof(struct xrdp_keymap), 0);
|
||||||
/* make a copy of the build in kaymap */
|
/* make a copy of the build in kaymap */
|
||||||
|
@ -169,7 +169,7 @@ xrdp_listen_get_port_address(char *port, int port_bytes,
|
|||||||
*tcp_nodelay = 0 ;
|
*tcp_nodelay = 0 ;
|
||||||
*tcp_keepalive = 0 ;
|
*tcp_keepalive = 0 ;
|
||||||
|
|
||||||
if (fd > 0)
|
if (fd != -1)
|
||||||
{
|
{
|
||||||
names = list_create();
|
names = list_create();
|
||||||
names->auto_free = 1;
|
names->auto_free = 1;
|
||||||
@ -242,9 +242,10 @@ xrdp_listen_get_port_address(char *port, int port_bytes,
|
|||||||
|
|
||||||
list_delete(names);
|
list_delete(names);
|
||||||
list_delete(values);
|
list_delete(values);
|
||||||
g_file_close(fd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_file_close(fd);
|
||||||
|
|
||||||
/* startup_param overrides */
|
/* startup_param overrides */
|
||||||
if (startup_param->port[0] != 0)
|
if (startup_param->port[0] != 0)
|
||||||
{
|
{
|
||||||
|
@ -1287,9 +1287,9 @@ xrdp_mm_get_sesman_port(char *port, int port_bytes)
|
|||||||
|
|
||||||
list_delete(names);
|
list_delete(names);
|
||||||
list_delete(values);
|
list_delete(values);
|
||||||
g_file_close(fd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_file_close(fd);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1414,7 +1414,7 @@ access_control(char *username, char *password, char *srv)
|
|||||||
int index;
|
int index;
|
||||||
int socket = g_tcp_socket();
|
int socket = g_tcp_socket();
|
||||||
|
|
||||||
if (socket > 0)
|
if (socket != -1)
|
||||||
{
|
{
|
||||||
/* we use a blocking socket here */
|
/* we use a blocking socket here */
|
||||||
reply = g_tcp_connect(socket, srv, "3350");
|
reply = g_tcp_connect(socket, srv, "3350");
|
||||||
@ -1507,6 +1507,9 @@ access_control(char *username, char *password, char *srv)
|
|||||||
log_message(LOG_LEVEL_ERROR, "Failure creating socket - for access control");
|
log_message(LOG_LEVEL_ERROR, "Failure creating socket - for access control");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (socket != -1)
|
||||||
|
g_tcp_close(socket);
|
||||||
|
|
||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -2719,10 +2722,11 @@ int read_allowed_channel_names(struct list *names, struct list *values)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
char cfg_file[256];
|
char cfg_file[256];
|
||||||
int pos;
|
int pos;
|
||||||
|
|
||||||
g_snprintf(cfg_file, 255, "%s/xrdp.ini", XRDP_CFG_PATH);
|
g_snprintf(cfg_file, 255, "%s/xrdp.ini", XRDP_CFG_PATH);
|
||||||
fd = g_file_open(cfg_file);
|
fd = g_file_open(cfg_file);
|
||||||
|
|
||||||
if (fd > 0)
|
if (fd != -1)
|
||||||
{
|
{
|
||||||
names->auto_free = 1;
|
names->auto_free = 1;
|
||||||
values->auto_free = 1;
|
values->auto_free = 1;
|
||||||
|
@ -236,10 +236,11 @@ xrdp_wm_load_pointer(struct xrdp_wm *self, char *file_name, char *data,
|
|||||||
init_stream(fs, 8192);
|
init_stream(fs, 8192);
|
||||||
fd = g_file_open(file_name);
|
fd = g_file_open(file_name);
|
||||||
|
|
||||||
if (fd < 1)
|
if (fd < 0)
|
||||||
{
|
{
|
||||||
log_message(LOG_LEVEL_ERROR,"xrdp_wm_load_pointer: error loading pointer from file [%s]",
|
log_message(LOG_LEVEL_ERROR,"xrdp_wm_load_pointer: error loading pointer from file [%s]",
|
||||||
file_name);
|
file_name);
|
||||||
|
xstream_free(fs);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -567,7 +568,7 @@ xrdp_wm_init(struct xrdp_wm *self)
|
|||||||
|
|
||||||
g_snprintf(cfg_file, 255, "%s/xrdp.ini", XRDP_CFG_PATH);
|
g_snprintf(cfg_file, 255, "%s/xrdp.ini", XRDP_CFG_PATH);
|
||||||
fd = g_file_open(cfg_file); /* xrdp.ini */
|
fd = g_file_open(cfg_file); /* xrdp.ini */
|
||||||
if (fd > 0)
|
if (fd != -1)
|
||||||
{
|
{
|
||||||
names = list_create();
|
names = list_create();
|
||||||
names->auto_free = 1;
|
names->auto_free = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user