chan_param.switch_timer_interval,
chan_param.read_timer_interval);
if (!chan) {
- ret = -ENOMEM;
+ ret = -EINVAL;
goto chan_error;
}
chan->file = chan_file;
int lttng_session_release(struct inode *inode, struct file *file)
{
struct ltt_session *session = file->private_data;
- ltt_session_destroy(session);
+
+ if (session)
+ ltt_session_destroy(session);
return 0;
}
event_name = kmalloc(PATH_MAX, GFP_KERNEL);
if (!event_name)
return -ENOMEM;
- if (strncpy_from_user(event_name, uevent_param->name, PATH_MAX)) {
+ if (strncpy_from_user(event_name, uevent_param->name, PATH_MAX) < 0) {
ret = -EFAULT;
goto name_error;
}
* invariant for the rest of the session.
*/
event = ltt_event_create(channel, event_name, event_param.itype,
- NULL, NULL); /* TODO non-null probe */
+ (void *) 0x1, NULL); /* TODO connect real probe */
if (!event) {
goto event_error;
ret = -EEXIST;
int lttng_channel_release(struct inode *inode, struct file *file)
{
struct ltt_channel *channel = file->private_data;
- fput(channel->session->file);
+
+ if (channel)
+ fput(channel->session->file);
return 0;
}
int lttng_event_release(struct inode *inode, struct file *file)
{
struct ltt_event *event = file->private_data;
- fput(event->chan->file);
+
+ if (event)
+ fput(event->chan->file);
return 0;
}
int ret = 0;
lttng_dentry = debugfs_create_file("lttng", S_IWUSR, NULL, NULL,
- <tng_session_fops);
+ <tng_fops);
if (IS_ERR(lttng_dentry) || !lttng_dentry) {
printk(KERN_ERR "Error creating LTTng control file\n");
ret = -ENOMEM;