numam-dpdk/lib/cmdline/cmdline_socket.c
Zhihong Peng 6ad06203a5 cmdline: free on exit
Malloc cl in the cmdline_stdin_new function, so release in the
cmdline_stdin_exit function is logical, so that cl will not be
released alone.

Fixes: af75078fec ("first public release")

Signed-off-by: Zhihong Peng <zhihongx.peng@intel.com>
Reviewed-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Tested-by: Zhihong Peng <zhihongx.peng@intel.com>
2021-10-22 23:32:00 +02:00

58 lines
1.0 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2010-2014 Intel Corporation.
* Copyright (c) 2009, Olivier MATZ <zer0@droids-corp.org>
* All rights reserved.
*/
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdarg.h>
#include <inttypes.h>
#include <fcntl.h>
#include "cmdline.h"
#include "cmdline_private.h"
#include "cmdline_socket.h"
struct cmdline *
cmdline_file_new(cmdline_parse_ctx_t *ctx, const char *prompt, const char *path)
{
int fd;
/* everything else is checked in cmdline_new() */
if (!path)
return NULL;
fd = open(path, O_RDONLY, 0);
if (fd < 0) {
dprintf("open() failed\n");
return NULL;
}
return cmdline_new(ctx, prompt, fd, -1);
}
struct cmdline *
cmdline_stdin_new(cmdline_parse_ctx_t *ctx, const char *prompt)
{
struct cmdline *cl;
cl = cmdline_new(ctx, prompt, 0, 1);
if (cl != NULL)
terminal_adjust(cl);
return cl;
}
void
cmdline_stdin_exit(struct cmdline *cl)
{
if (cl == NULL)
return;
terminal_restore(cl);
cmdline_free(cl);
}