Re: [PATCH v4] smb daemon get additional command line parameters from env variable

2019-11-02 Thread Samuel Thibault
Jordi Pujol, le sam. 02 nov. 2019 08:41:52 +0100, a ecrit:
> @@ -909,6 +910,12 @@ static int slirp_smb(SlirpState* s, cons
>   CONFIG_SMBD_COMMAND, s->smb_dir, smb_conf);
>  g_free(smb_conf);
> 
> +options = g_getenv("SMBDOPTIONS");
> +if (options) {
> +smb_cmdline = g_strdup_printf("%s %s", smb_cmdline, options);
> +g_free(options);
> +}

Again, what g_getenv mustn't be freed. I believe you even get a warning
about it: g_getenv returns a const gchar *.

The old value of smb_cmdline, however, has to be freed, otherwise that's
a memory leak.

Samuel



Re: [PATCH v4] smb daemon get additional command line parameters from env variable

2019-11-02 Thread Jordi Pujol
From: Jordi Pujol Palomer 
Date: Sat, 2 Nov 2019 08:54:14 +0200
Subject: [PATCH v4] QEMU samba daemon: additional command line options

The smbd daemon takes additional command line options
from environment variable SMBDOPTIONS.
Set the environment variable SMBDOPTIONS before executing qemu.

Example:

export SMBDOPTIONS="--option='server min protocol=CORE' -d 4"

Signed-off-by: Jordi Pujol Palomer 
---
--- qemu-4.1-a/net/slirp.c
+++ qemu_4.1-b/net/slirp.c
@@ -834,6 +834,7 @@ static int slirp_smb(SlirpState* s, cons
 char *smb_cmdline;
 struct passwd *passwd;
 FILE *f;
+char *options;

 passwd = getpwuid(geteuid());
 if (!passwd) {
@@ -909,6 +910,12 @@ static int slirp_smb(SlirpState* s, cons
  CONFIG_SMBD_COMMAND, s->smb_dir, smb_conf);
 g_free(smb_conf);

+options = g_getenv("SMBDOPTIONS");
+if (options) {
+smb_cmdline = g_strdup_printf("%s %s", smb_cmdline, options);
+g_free(options);
+}
+
 if (slirp_add_exec(s->slirp, smb_cmdline, &vserver_addr, 139) < 0 ||
 slirp_add_exec(s->slirp, smb_cmdline, &vserver_addr, 445) < 0) {
 slirp_smb_cleanup(s);