Re: normalize ldap DN in the config

2021-10-06 Thread Gleydson Soares



> On Oct 6, 2021, at 2:13 PM, Claudio Jeker  wrote:
> 
> Run into this while setting up a new DN.
> The DN in namespace only matches if it is normalized.
> So it may be best to do this by default when adding a namespace.
> With this using a capitalized namespace like "o=OpenBSD,c=CA" will
> work. Also as a side note the rootdn is already normalized so no need
> to fix that.
> 
> Totally unrelated but I could not resist to change the error check for
> host from the somewhat funky <= 0 to a != 1 (host returns 1 on success and
> 0 and -1 on failure).
> 
> I will split this into two commits in the end.
> -- 
> :wq Claudio
> 
> Index: parse.y
> ===
> RCS file: /cvs/src/usr.sbin/ldapd/parse.y,v
> retrieving revision 1.40
> diff -u -p -r1.40 parse.y
> --- parse.y   2 May 2021 14:39:05 -   1.40
> +++ parse.y   6 Oct 2021 16:56:50 -
> @@ -207,7 +207,7 @@ conf_main : LISTEN ON STRING port ssl ce
>   if (! interface($3, cert, &conf->listeners,
>   $4, $5)) {
>   if (host($3, cert, &conf->listeners,
> - $4, $5) <= 0) {
> + $4, $5) != 1) {
>   yyerror("invalid virtual ip or 
> interface: %s", $3);
>   free($6);
>   free($3);
> @@ -1206,15 +1206,16 @@ namespace_new(const char *suffix)
> 
>   if ((ns = calloc(1, sizeof(*ns))) == NULL)
>   return NULL;
> - ns->suffix = strdup(suffix);
>   ns->sync = 1;
>   ns->cache_size = 1024;
>   ns->index_cache_size = 512;
> + ns->suffix = strdup(suffix);
>   if (ns->suffix == NULL) {
>   free(ns->suffix);
>   free(ns);
>   return NULL;
>   }
> + normalize_dn(ns->suffix);
>   TAILQ_INIT(&ns->indices);
>   TAILQ_INIT(&ns->request_queue);
>   SIMPLEQ_INIT(&ns->acl);
> 

Diff looks fine. OK gsoares



Re: sample unbound.conf tweak

2020-06-21 Thread Gleydson Soares
On Sun, Jun 21, 2020 at 04:47:22PM +0100, Stuart Henderson wrote:
> An "uncomment" was left in when we reenabled dnssec by default,
> and it seems a bit pointless to say "comment out to disable".  ok?
> 

makes sense, ok with me.

> 
> Index: unbound.conf
> ===
> RCS file: /cvs/src/etc/unbound.conf,v
> retrieving revision 1.19
> diff -u -p -r1.19 unbound.conf
> --- unbound.conf7 Nov 2019 15:46:37 -   1.19
> +++ unbound.conf21 Jun 2020 15:46:34 -
> @@ -19,12 +19,12 @@ server:
> hide-identity: yes
> hide-version: yes
>  
> -   # Perform DNSSEC validation. Comment out the below option to
> disable.
> +   # Perform DNSSEC validation.
> #
> auto-trust-anchor-file: "/var/unbound/db/root.key"
> val-log-level: 2
>  
> -   # Uncomment to synthesize NXDOMAINs from DNSSEC NSEC chains
> +   # Synthesize NXDOMAINs from DNSSEC NSEC chains.
> # https://tools.ietf.org/html/rfc8198
> #
> aggressive-nsec: yes
> 



Re: refer to pointers as non-null

2020-01-31 Thread Gleydson Soares
On Fri, Jan 31, 2020 at 05:33:05AM -0500, Ted Unangst wrote:
> Noticed this in wait.2, though I imagine other occurences abound.
> 
> I believe non-null is clearer when refering to a pointer than non-zero, which
> is a bit 80s, and less likely to be mistaken for the value pointed to. This
> same page also refers to non-zero values, fwiw.
> 
> 
> Index: wait.2
> ===
> RCS file: /home/cvs/src/lib/libc/sys/wait.2,v
> retrieving revision 1.30
> diff -u -p -r1.30 wait.2
> --- wait.21 May 2017 00:08:31 -   1.30
> +++ wait.231 Jan 2020 10:28:42 -
> @@ -70,7 +70,7 @@ On return from a successful
>  .Fn wait
>  call, the
>  .Fa status
> -area, if non-zero, is filled in with termination information about the
> +area, if non-null, is filled in with termination information about the
>  process that exited (see below).
>  .Pp
>  The
> @@ -137,7 +137,7 @@ signal also have their status reported.
>  .Pp
>  If
>  .Fa rusage
> -is non-zero, a summary of the resources used by the terminated
> +is non-null, a summary of the resources used by the terminated
>  process and all its
>  children is returned (this information is currently not available
>  for stopped processes).

diff looks right, things got confused maybe because that wait(2) returns pid_t, 
but it's refering to status pointer.



Re: introduce 'pfctl -FR' to reset settings to defaults

2019-04-06 Thread Gleydson Soares
 +void
> +pfctl_reset(int dev, int opts)
> +{
> + struct pfctlpf;
> + struct pfr_buffer t;
> + int i;
> +
> + pf.dev = dev;
> + pfctl_init_options(&pf);
> +
> + /* Force reset upon pfctl_load_options() */
> + pf.debug_set = 1;
> + pf.reass_set = 1;
> + pf.syncookieswat_set = 1;
> + pf.ifname = strdup("none");
> + if (pf.ifname == NULL)
> + warn("%s: Warning: can't reset loginterface\n", __func__);

do you really need this
extra newline here?
warn() itself already includes
one.
> + else
> + pf.ifname_set = 1;
> +
> + memset(&t, 0, sizeof(t));
> + t.pfrb_type = PFRB_TRANS;
> + if (pfctl_trans(dev, &t, DIOCXBEGIN, 0))
> + warn("%s, DIOCXBEGIN", __func__);
> +
> + for (i = 0; pf_limits[i].name; i++)
> + pf.limit_set[pf_limits[i].index] = 1;
> +
> + for (i = 0; pf_timeouts[i].name; i++)
> + pf.timeout_set[pf_timeouts[i].timeout] = 1;
> +
> + pfctl_load_options(&pf);
> +
> + if (pfctl_trans(dev, &t, DIOCXCOMMIT, 0))
> + warn("%s, DIOCXCOMMIT", __func__);
> +
> + pfctl_clear_interface_flags(dev, opts);
> +}



Re: Replace getprogname() to argv[0] in bnaddsub

2018-07-17 Thread Gleydson Soares
On Tue, Jul 17, 2018 at 10:09:37PM +0900, Kinichiro Inoguchi wrote:
> To run regress bnaddsub on Windows, I would like to supersede getprogname
> with argv[0] since it is not on Windows.
> 
> OK ?
> 
> Index: regress/lib/libcrypto/bn/addsub/bnaddsub.c
> ===
> RCS file: /cvs/src/regress/lib/libcrypto/bn/addsub/bnaddsub.c,v
> retrieving revision 1.1
> diff -u -p -u -p -r1.1 bnaddsub.c
> --- regress/lib/libcrypto/bn/addsub/bnaddsub.c10 Jul 2018 16:57:50 
> -  1.1
> +++ regress/lib/libcrypto/bn/addsub/bnaddsub.c17 Jul 2018 13:01:08 
> -
> @@ -216,7 +216,7 @@ main(int argc, char *argv[])
>  
>   if ((bio_err = BIO_new_fp(stderr, BIO_NOCLOSE)) == NULL) {
>   fprintf(stderr, "%s: failed to initialize bio_err",
> - getprogname());
> + argv[0]);
>   return 1;
>   }
>  
> 

how about of using __progname ?



Re: sync calloc call in ber.c

2018-06-27 Thread Gleydson Soares
On Wed, Jun 27, 2018 at 10:05:52AM -0400, Rob Pierce wrote:
> This ber.c change has been in ldapd since rev 1.1 and was applied to snmpd 
> back
> in 2012. The following diff applies the change to the ldap client and ypldap.
> 
> Ok?

looks right,

> 
> Index: usr.bin/ldap/ber.c
> ===
> RCS file: /cvs/src/usr.bin/ldap/ber.c,v
> retrieving revision 1.2
> diff -u -p -r1.2 ber.c
> --- usr.bin/ldap/ber.c27 Jun 2018 13:22:17 -  1.2
> +++ usr.bin/ldap/ber.c27 Jun 2018 13:55:51 -
> @@ -269,7 +269,7 @@ ber_add_nstring(struct ber_element *prev
>   struct ber_element *elm;
>   char *string;
>  
> - if ((string = calloc(1, len)) == NULL)
> + if ((string = calloc(1, len + 1)) == NULL)
>   return NULL;
>   if ((elm = ber_get_element(BER_TYPE_OCTETSTRING)) == NULL) {
>   free(string);
> 
> Index: usr.sbin/ypldap/ber.c
> ===
> RCS file: /cvs/src/usr.sbin/ypldap/ber.c,v
> retrieving revision 1.14
> diff -u -p -r1.14 ber.c
> --- usr.sbin/ypldap/ber.c 27 Jun 2018 13:22:17 -  1.14
> +++ usr.sbin/ypldap/ber.c 27 Jun 2018 13:55:51 -
> @@ -269,7 +269,7 @@ ber_add_nstring(struct ber_element *prev
>   struct ber_element *elm;
>   char *string;
>  
> - if ((string = calloc(1, len)) == NULL)
> + if ((string = calloc(1, len + 1)) == NULL)
>   return NULL;
>   if ((elm = ber_get_element(BER_TYPE_OCTETSTRING)) == NULL) {
>   free(string);
> 



Re: ldapd: avoid passing NULL to asprintf(3) when there's no parent dn entry

2018-06-25 Thread Gleydson Soares
On Mon, Jun 25, 2018 at 12:27:23PM +0200, Jeremie Courreges-Anglas wrote:
> On Mon, Jun 25 2018, Gleydson Soares  wrote:
> > avoid passing NULL to asprintf(3) when there's no parent dn entry,
> > this happens when adding a new naming context and then putting the first
> > rdn in.
> >
> > Jun 24 23:51:23 x250 ldapd: vfprintf %s NULL in "@%.*s,%.*s"
> > Jun 25 00:13:14 x250 ldapd: vfprintf %s NULL in "@%.*s,%.*s"
> 
> Are those log entries the only symptom, or does this problem affect
> ldapd(8) operations?

it doesn't affect anything, just messed up my logs.

> 
> The diff looks correct but more complicated than necessary.  Unless I'm
> missing something the shorter diff below would also help.  Does it work
> for you?

clever!
works for me, i'm going to commit it tonight. thanks,

> 
> 
> Index: index.c
> ===
> RCS file: /d/cvs/src/usr.sbin/ldapd/index.c,v
> retrieving revision 1.11
> diff -u -p -p -u -r1.11 index.c
> --- index.c   20 Jan 2017 11:55:08 -  1.11
> +++ index.c   25 Jun 2018 10:19:00 -
> @@ -138,6 +138,7 @@ index_rdn_key(struct namespace *ns, stru
>   if (parent_dn == NULL) {
>   rdnsz = dnsz;
>   pdnsz = 0;
> + parent_dn = "";
>   } else {
>   rdnsz = parent_dn - (char *)dn->data;
>   pdnsz = dnsz - rdnsz - 1;
> 
> -- 
> jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



Re: ldapd: fix regress

2018-06-25 Thread Gleydson Soares
On Mon, Jun 25, 2018 at 08:49:31AM +0200, Landry Breuil wrote:
> On Mon, Jun 25, 2018 at 02:25:40AM -0300, Gleydson Soares wrote:
> > unbreak ldapd regress,
> > everything seems to be working fine.
> 
> the point of the overly complicated grep line was to handle the case
> where you have a running production ldapd, and you spawn another one for
> regress.. that's also why it starts on another tcp port.

currently it's broken, grep doesn't grab the pid since
there's no pid there in log file.


kill: illegal process id: startup


here's a diff that works for me, if you have a better approach
let me know.
? ldapd1.conf
? log
Index: Makefile
===
RCS file: /cvs/src/regress/usr.sbin/ldapd/Makefile,v
retrieving revision 1.8
diff -u -p -r1.8 Makefile
--- Makefile25 Jun 2017 22:06:06 -  1.8
+++ Makefile25 Jun 2018 13:57:39 -
@@ -33,9 +33,9 @@ bootstrap:
@[ -z "${SUDO}" ] || ${SUDO} true
@${SUDO} install -m 600 -o root ${.CURDIR}/ldapd.conf 
${.OBJDIR}/ldapd1.conf
@${SUDO} ldapd -n -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf
-   @${SUDO} ldapd -dvv -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf > 
${.OBJDIR}/log 2>&1 &
+   @${SUDO} ldapd -dvv -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf > 
${.OBJDIR}/log 2>&1 & \
+   echo $$! > ${.OBJDIR}/ldapd.pid
@sleep 1
-   @grep -a startup ${.OBJDIR}/log |sed -e 's/.*\[// ; s/\].*//' > 
${.OBJDIR}/ldapd.pid
 
 .if ! (make(clean) || make(cleandir) || make(obj))
 .END:


ldapd: fix regress

2018-06-24 Thread Gleydson Soares
unbreak ldapd regress,
everything seems to be working fine.

;;x250 ~/src/regress/usr.sbin/ldapd> make ; echo $?
configuration ok
ldapsearch -x -H ldapi://%2ftmp%2fldapi | diff - 
/home/gsoares/src/regress/usr.sbin/ldapd/out/empty.log
ldapsearch -x -p 6639 -h localhost 2>&1 | diff - 
/home/gsoares/src/regress/usr.sbin/ldapd/out/empty.log
ldapsearch -x -p 6636 -h localhost 2>&1 | diff - 
/home/gsoares/src/regress/usr.sbin/ldapd/out/empty.log
configuration ok
ldapadd -f /home/gsoares/src/regress/usr.sbin/ldapd/dit-example.ldif 
-Dcn=admin,dc=example,dc=com -x -w secret -h localhost -p 6639 | diff - 
/home/gsoares/src/regress/usr.sbin/ldapd/out/adding.log
ldapsearch -x -b dc=example,dc=com -h localhost -p 6639 | diff - 
/home/gsoares/src/regress/usr.sbin/ldapd/out/example.log
ldapsearch -x -D cn=admin,dc=example,dc=com -w secret -b dc=example,dc=com -h 
localhost -p 6639 | diff - 
/home/gsoares/src/regress/usr.sbin/ldapd/out/example.log
configuration ok
1 ldap entries
cn=admin,dc=example,dc=com
configuration ok
ldapdelete -Dcn=admin,dc=example,dc=com -x -w secret -h localhost -p 6639 -r 
dc=example,dc=com
ldapsearch -x -p 6639 -h localhost 2>&1 | diff - 
/home/gsoares/src/regress/usr.sbin/ldapd/out/empty.log
0

Index: Makefile
===
RCS file: /cvs/src/regress/usr.sbin/ldapd/Makefile,v
retrieving revision 1.8
diff -u -p -r1.8 Makefile
--- Makefile25 Jun 2017 22:06:06 -  1.8
+++ Makefile25 Jun 2018 05:20:52 -
@@ -35,7 +35,7 @@ bootstrap:
@${SUDO} ldapd -n -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf
@${SUDO} ldapd -dvv -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf > 
${.OBJDIR}/log 2>&1 &
@sleep 1
-   @grep -a startup ${.OBJDIR}/log |sed -e 's/.*\[// ; s/\].*//' > 
${.OBJDIR}/ldapd.pid
+   @pgrep -n ldapd > ${.OBJDIR}/ldapd.pid
 
 .if ! (make(clean) || make(cleandir) || make(obj))
 .END:


ldapd: avoid passing NULL to asprintf(3) when there's no parent dn entry

2018-06-24 Thread Gleydson Soares
avoid passing NULL to asprintf(3) when there's no parent dn entry,
this happens when adding a new naming context and then putting the first
rdn in.

Jun 24 23:51:23 x250 ldapd: vfprintf %s NULL in "@%.*s,%.*s"
Jun 25 00:13:14 x250 ldapd: vfprintf %s NULL in "@%.*s,%.*s"

? ldapd.diff
Index: index.c
===
RCS file: /cvs/src/usr.sbin/ldapd/index.c,v
retrieving revision 1.11
diff -u -p -r1.11 index.c
--- index.c 20 Jan 2017 11:55:08 -  1.11
+++ index.c 24 Jun 2018 22:06:04 -
@@ -144,9 +144,14 @@ index_rdn_key(struct namespace *ns, stru
++parent_dn;
}
 
-   if (asprintf(&t, "@%.*s,%.*s", pdnsz, parent_dn, rdnsz,
-   (char *)dn->data) == -1)
-   return -1;
+   if (!pdnsz) {
+   if (asprintf(&t, "@,%.*s", rdnsz, (char *)dn->data) == -1)
+   return -1;
+   } else {
+   if (asprintf(&t, "@%.*s,%.*s", pdnsz, parent_dn, rdnsz,
+   (char *)dn->data) == -1)
+   return -1;
+   }
 
normalize_dn(t);
key->data = t;


vmd: sync DPADD with LDADD

2018-06-23 Thread Gleydson Soares
sync DPADD with LDADD adding missing ${LIBPTHREAD} to ensure
that binary is rebuilt in case of pthread library changes.
Index: Makefile
===
RCS file: /cvs/src/usr.sbin/vmd/Makefile,v
retrieving revision 1.17
diff -u -p -r1.17 Makefile
--- Makefile3 Jan 2018 05:39:56 -   1.17
+++ Makefile24 Jun 2018 05:31:47 -
@@ -15,7 +15,7 @@ CFLAGS+=  -Wshadow -Wpointer-arith -Wcast
 CFLAGS+=   -Wsign-compare
 
 LDADD+=-lutil -lpthread -levent
-DPADD+=${LIBUTIL} ${LIBEVENT}
+DPADD+=${LIBUTIL} ${LIBPTHREAD} ${LIBEVENT}
 
 YFLAGS=
 


spamlogd: add missing ${LIBCRYPTO} to DPADD

2018-06-23 Thread Gleydson Soares
add missing ${LIBCRYPTO}

Index: Makefile
===
RCS file: /cvs/src/libexec/spamlogd/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- Makefile21 Aug 2013 16:13:30 -  1.7
+++ Makefile24 Jun 2018 04:04:42 -
@@ -6,7 +6,7 @@ MAN=spamlogd.8
 
 CFLAGS+= -Wall -Wstrict-prototypes -I${.CURDIR}/../spamd
 LDADD+= -lpcap -lcrypto
-DPADD+=${LIBPCAP}
+DPADD+=${LIBPCAP} ${LIBCRYPTO}
 .PATH:  ${.CURDIR}/../spamd
 
 .include 



sasyncd: remove redundant memset() call

2018-06-23 Thread Gleydson Soares
calloc() already filled all the memory block to 0, zap memset().
Index: pfkey.c
===
RCS file: /cvs/src/usr.sbin/sasyncd/pfkey.c,v
retrieving revision 1.28
diff -u -p -r1.28 pfkey.c
--- pfkey.c 18 Apr 2017 02:29:56 -  1.28
+++ pfkey.c 24 Jun 2018 04:36:51 -
@@ -115,7 +115,6 @@ pfkey_send_flush(struct syncpeer *p)
static u_int32_t seq = 1;
 
if (m) {
-   memset(m, 0, sizeof *m);
m->sadb_msg_version = PF_KEY_V2;
m->sadb_msg_seq = seq++;
m->sadb_msg_type = SADB_FLUSH;


Re: use __func__ in iked util.c log_debug

2018-06-22 Thread Gleydson Soares
On Fri, Jun 22, 2018 at 08:58:24AM -0400, Rob Pierce wrote:
> ok?

looks good to me,

> 
> Index: util.c
> ===
> RCS file: /cvs/src/sbin/iked/util.c,v
> retrieving revision 1.35
> diff -u -p -r1.35 util.c
> --- util.c13 Dec 2017 08:27:06 -  1.35
> +++ util.c22 Jun 2018 12:52:09 -
> @@ -703,7 +703,7 @@ expand_string(char *label, size_t len, c
>   char *p, *q;
>  
>   if ((tmp = calloc(1, len)) == NULL) {
> - log_debug("expand_string: calloc");
> + log_debug("%s: calloc", __func__);
>   return (-1);
>   }
>   p = q = label;
> @@ -711,7 +711,7 @@ expand_string(char *label, size_t len, c
>   *q = '\0';
>   if ((strlcat(tmp, p, len) >= len) ||
>   (strlcat(tmp, repl, len) >= len)) {
> - log_debug("expand_string: string too long");
> + log_debug("%s: string too long", __func__);
>   free(tmp);
>   return (-1);
>   }
> @@ -719,7 +719,7 @@ expand_string(char *label, size_t len, c
>   p = q;
>   }
>   if (strlcat(tmp, p, len) >= len) {
> - log_debug("expand_string: string too long");
> + log_debug("%s: string too long", __func__);
>   free(tmp);
>   return (-1);
>   }
> 



Re: ldap(1) -y secretfile

2018-06-21 Thread Gleydson Soares
On Wed, Jun 20, 2018 at 04:32:34PM +0200, Reyk Floeter wrote:
> Hi,
> 
> the following diff adds support for reading the bind secret from a
> file; this allows to hide it from ps.  The -y flag is once again
> compatible with OpenLDAP's client.
> 
> Pointed out by Tim Chase on Twitter.
> 
> OK?

builds and runs fine here.

;;x250 ~/hack/cvs/src/usr.bin/ldap> ./ldap search -c /etc/ldap/certs/lo0.crt -H 
ldaps://localhost -D \
"cn=admin,dc=trusted,dc=com,dc=br" -b \
"ou=people,dc=trusted,dc=com,dc=br" -y secret

ou: people
description: All people in organisation
objectclass: organizationalunit

dn: cn=gleydson soares,ou=people,dc=trusted,dc=com,dc=br
objectclass: inetOrgPerson
cn: Gleydson Soares
sn: Gleydson
uid: gsoares
<...>

i like it, ok gsoares@



vmd: def nitems() locally

2018-04-30 Thread Gleydson Soares
hi,

following diff defines nitems locally and stop 
including 
Index: control.c
===
RCS file: /cvs/src/usr.sbin/vmd/control.c,v
retrieving revision 1.22
diff -u -p -r1.22 control.c
--- control.c   8 Sep 2017 06:24:31 -   1.22
+++ control.c   30 Apr 2018 22:45:22 -
@@ -17,7 +17,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include  /* nitems */
 #include 
 #include 
 #include 
Index: priv.c
===
RCS file: /cvs/src/usr.sbin/vmd/priv.c,v
retrieving revision 1.13
diff -u -p -r1.13 priv.c
--- priv.c  11 Nov 2017 02:50:07 -  1.13
+++ priv.c  30 Apr 2018 22:45:22 -
@@ -16,7 +16,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include  /* nitems */
 #include 
 #include 
 #include 
Index: vmd.c
===
RCS file: /cvs/src/usr.sbin/vmd/vmd.c,v
retrieving revision 1.84
diff -u -p -r1.84 vmd.c
--- vmd.c   25 Apr 2018 15:49:48 -  1.84
+++ vmd.c   30 Apr 2018 22:45:22 -
@@ -16,7 +16,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include  /* nitems */
 #include 
 #include 
 #include 
Index: vmd.h
===
RCS file: /cvs/src/usr.sbin/vmd/vmd.h,v
retrieving revision 1.68
diff -u -p -r1.68 vmd.h
--- vmd.h   27 Apr 2018 12:15:10 -  1.68
+++ vmd.h   30 Apr 2018 22:45:22 -
@@ -35,6 +35,10 @@
 #ifndef VMD_H
 #define VMD_H
 
+#ifndef nitems
+#define nitems(_a)  (sizeof((_a)) / sizeof((_a)[0]))
+#endif
+
 #define SET(_v, _m)((_v) |= (_m))
 #define CLR(_v, _m)((_v) &= ~(_m))
 #define ISSET(_v, _m)  ((_v) & (_m))
Index: vmm.c
===
RCS file: /cvs/src/usr.sbin/vmd/vmm.c,v
retrieving revision 1.81
diff -u -p -r1.81 vmm.c
--- vmm.c   13 Apr 2018 17:12:44 -  1.81
+++ vmm.c   30 Apr 2018 22:45:22 -
@@ -16,7 +16,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include  /* nitems */
 #include 
 #include 
 #include 


Re: ldapd: one negation is enough

2017-07-28 Thread Gleydson Soares

Florian Obser  writes:
> this made my head hurt, pointed out by clang.
> 
> "logical not is only applied to the left hand side of this comparison
> [-Wlogical-not-parentheses]"
> 
> OK?

oh I realized I had forgotten something,
I've this change in my tree for months and ok'ed by millert@.
please commit it, OK gsoares

> 
> diff --git ldapd/modify.c ldapd/modify.c
> index f5d9007faaa..485d0fcfba9 100644
> --- ldapd/modify.c
> +++ ldapd/modify.c
> @@ -132,7 +132,7 @@ ldap_add(struct request *req)
>   return ldap_refer(req, dn, NULL, refs);
>   }
>  
> - if (!authorized(req->conn, ns, ACI_WRITE, dn, LDAP_SCOPE_BASE) != 0)
> + if (!authorized(req->conn, ns, ACI_WRITE, dn, LDAP_SCOPE_BASE))
>   return ldap_respond(req, LDAP_INSUFFICIENT_ACCESS);
>  
>   /* Check that we're not adding immutable attributes.
> @@ -242,7 +242,7 @@ ldap_modify(struct request *req)
>   return ldap_refer(req, dn, NULL, refs);
>   }
>  
> - if (!authorized(req->conn, ns, ACI_WRITE, dn, LDAP_SCOPE_BASE) != 0)
> + if (!authorized(req->conn, ns, ACI_WRITE, dn, LDAP_SCOPE_BASE))
>   return ldap_respond(req, LDAP_INSUFFICIENT_ACCESS);
>  
>   if (namespace_begin(ns) == -1) {
> 
> 
> -- 
> I'm not entirely sure you are real.



Re: pfctl: Fix function name in errx(3) message

2017-03-27 Thread Gleydson Soares
> What about the other calls to calloc(3); shouldn't we keep their
> respective error messages consistent?

seems that several err()/errx() calls in pfctl code are hard-coding
the function name...

instead of hard code, maybe those calls should be changed to:
errx(1, "%s: anystring", __func__)



Re: Improved support for Apple trackpads: tests needed

2017-03-10 Thread Gleydson Soares
Hi Ulf,

> This patch for ubcmtp makes it use the multitouch-input functions of
> wsmouse. It's the first driver that would apply the "tracking" variant
> (wsmouse_mtframe).
> 
> No wonders will result from the change, but the two-finger gestures that
> involve movement - scrolling and click-and-drag with two fingers on a
> clickpad - should work without flaws.
> 
> A quick way to check whether all touch positions are available and the
> selection of the active touch works properly is two-finger-scrolling,
> performed with only one finger moving, then switching to the other one.
> 
> Please note that click-and-drag will still require that the "ClickPad"
> attribute is set in the synaptics(4) configuration.
> 
> The patch has been tested on a MacBookPro 8,2 (from 2011). It would be
> nice to learn that it doesn't introduce regressions on older or newer
> models.
> 
> If you don't use a brand-new version of the synaptics driver, you may
> encounter the following bug: If the X cursor is in a window with
> scrollable content and you put two finger on the touchpad without moving
> them, the window content may quickly scroll up and down by a small
> distance. This bug is fixed in the latest version.

i've been running a kernel with your patch in,
works here, MacBookAir 6,1

notable improvement, gestures is more responsive, i've tested
text selection and scrolling with two-fingers and also by putting
one-finger and scroling with the second finger... works fine...

thanks for the patch, it's just makes my life more confortable.
// gsoares



Re: undocumented -P/-I in relayd, vmd, httpd, ...

2017-02-28 Thread Gleydson Soares

Philipp Buehler  writes:
> Hi there,
> 
> while crawling through relayd source, I noticed that there is I:P: in 
> getopt.
> P is obviously setting the proc-title, but I am unsure what to "get" 
> from an
> instance-number via -I.
> 
> This found way into httpd, snmpd, switchd and vmd also; mainly while 
> g2k16.
> 
> If someone dares to explain it, I can mop up a diff for the manpages.
> 
> ciao
> -- 
> pb

This is for internal use only. -P/-I flags were introduced to deal
with fork+exec,



Re: fix uname.3 manpage.

2016-10-09 Thread Gleydson Soares

Philip Guenther  writes:
> 
> On Sat, 8 Oct 2016, Gleydson Soares wrote:
> > uname(3) function returns 0 on successful and -1 on failure.
> > "non-negative value" is wrong here.
> 
> Hmm, that's a direct quote from the standard.  While our implementation 
> only returns zero on success, an application which checked for a return 
> value of exactly zero would be non-portable.
> 
> 
> Philip

I stlumbled upon it, while reading uname(1) code.

src/usr.bin/uname/uname.c:104
if (uname(&u))
err(1, NULL);

Index: uname.c
===
RCS file: /cvs/src/usr.bin/uname/uname.c,v
retrieving revision 1.17
diff -u -p -r1.17 uname.c
--- uname.c 24 Dec 2015 15:01:24 -  1.17
+++ uname.c 9 Oct 2016 18:41:31 -
@@ -101,7 +101,7 @@ main(int argc, char *argv[])
print_mask = PRINT_SYSNAME;
}
 
-   if (uname(&u))
+   if (uname(&u) == -1)
err(1, NULL);
 
if (print_mask & PRINT_SYSNAME) {



fix uname.3 manpage.

2016-10-09 Thread Gleydson Soares
uname(3) function returns 0 on successful and -1 on failure.
"non-negative value" is wrong here.


Index: uname.3
===
RCS file: /cvs/src/lib/libc/gen/uname.3,v
retrieving revision 1.15
diff -u -p -r1.15 uname.3
--- uname.3 21 Jan 2014 03:15:45 -  1.15
+++ uname.3 9 Oct 2016 17:50:16 -
@@ -65,7 +65,7 @@ Machine hardware platform.
 .Sh RETURN VALUES
 The
 .Fn uname
-function returns a non-negative value if successful;
+function returns 0 if successful;
 otherwise the value -1 is returned and the global variable
 .Va errno
 is set to indicate the error.



passwd(1) - use explicit_bzero(3)

2016-08-31 Thread Gleydson Soares
after recents passwd(1) changes, We should use explicit_bzero(3) for
clearing these sensitive strings.
OK?

Index: local_passwd.c
===
RCS file: /cvs/src/usr.bin/passwd/local_passwd.c,v
retrieving revision 1.50
diff -u -p -r1.50 local_passwd.c
--- local_passwd.c  31 Aug 2016 12:41:19 -  1.50
+++ local_passwd.c  31 Aug 2016 14:17:40 -
@@ -174,8 +174,10 @@ getnewpasswd(struct passwd *pw, login_ca
}
if (crypt_checkpass(p, pw->pw_passwd) != 0) {
errno = EACCES;
+   explicit_bzero(oldpass, sizeof(oldpass));
pw_error(NULL, 1, 1);
}
+   explicit_bzero(oldpass, sizeof(oldpass));
}
}
 
@@ -204,6 +206,7 @@ getnewpasswd(struct passwd *pw, login_ca
if (p != NULL && strcmp(newpass, p) == 0)
break;
(void)printf("Mismatch; try again, EOF to quit.\n");
+   explicit_bzero(newpass, sizeof(newpass));
}
 
(void)signal(SIGINT, saveint);
@@ -212,8 +215,10 @@ getnewpasswd(struct passwd *pw, login_ca
pref = login_getcapstr(lc, "localcipher", NULL, NULL);
if (crypt_newhash(newpass, pref, hash, sizeof(hash)) != 0) {
(void)printf("Couldn't generate hash.\n");
+   explicit_bzero(newpass, sizeof(newpass));
pw_error(NULL, 0, 0);
}
+   explicit_bzero(newpass, sizeof(newpass));
free(pref);
return hash;
 }



pf.conf X11 rule.

2016-08-27 Thread Gleydson Soares
Xserver no longer listen on tcp 6000:6010 by default. I wonder if that pf
rule is still necessary.


Index: pf.conf
===
RCS file: /cvs/src/etc/pf.conf,v
retrieving revision 1.54
diff -u -p -r1.54 pf.conf
--- pf.conf 23 Aug 2014 05:49:42 -  1.54
+++ pf.conf 28 Aug 2016 01:22:26 -
@@ -6,6 +6,3 @@ set skip on lo
 
 block return   # block stateless traffic
 pass   # establish keep-state
-
-# By default, do not permit remote connections to X11
-block return in on ! lo0 proto tcp to port 6000:6010



Re: wifind(8) find your wifi

2016-06-02 Thread Gleydson Soares
On Thu, Jun 2, 2016 at 7:52 PM, Mike Belopuhov  wrote:
> On 3 June 2016 at 00:17, Gleydson Soares  wrote:
>> I usually just use a small script that lives in ~/bin
>>
>
> It's a great name, though.

Oops, Disregard it...

it was a reply to:
http://marc.info/?l=openbsd-misc&m=146488514620893&w=2

unintentionally I sent to tech@, my mailclient won the fight...



wifind(8) find your wifi

2016-06-02 Thread Gleydson Soares
I usually just use a small script that lives in ~/bin

cat ~/bin/wifi

#!/bin/sh

if [[ $1 == "home" ]]; then
doas ifconfig run0 nwid foonet wpa wpakey ultrasecret
doas dhclient run0
fi



Re: doas: adjust yyerror() output

2016-04-26 Thread Gleydson Soares
> what about just printing "doas: "?

I prefer not hardcoded string, although I've committed as you pointed out,



doas: adjust yyerror() output

2016-04-25 Thread Gleydson Soares

I just stumbled over this...

% doas abc
syntax error at line 1
% 

I took some secs trying to figure out what was wrong with abc's command syntax 
that I typed out. 
But bingo,  It was happenned due my doas.conf has a syntax error...  
Seems that yyerror() doesn't print out the progname's string, 

sounds better for a quick diagnosis?

% doas abc
doas: syntax error at line 1
%

sounds better for a quick diagnosis?
OK?

Index: parse.y
===
RCS file: /cvs/src/usr.bin/doas/parse.y,v
retrieving revision 1.14
diff -u -p -r1.14 parse.y
--- parse.y 4 Dec 2015 09:41:49 -   1.14
+++ parse.y 26 Apr 2016 01:37:57 -
@@ -176,6 +176,7 @@ yyerror(const char *fmt, ...)
 {
va_list va;
 
+   fprintf(stderr, "%s: ", getprogname());
va_start(va, fmt);
vfprintf(stderr, fmt, va);
va_end(va);



Re: ldapd: add -r option to specify datadir path

2016-02-02 Thread Gleydson Soares
> Here's a similar diff for ldapctl, thoughts?

With your tweaks sounds much better.
OK gsoares@



Re: ldapd: add -r option to specify datadir path

2016-02-02 Thread Gleydson Soares
> Thinking about it .. would a call to access(2) with R_OK|W_OK|R_OK|F_OK 
> satisfy
> everyone ? Or only F_OK ?

Sounds better than chdir(2), but it will lack if datadir was passed to access(2)
without including trailing "/"

eg with access(datadir, F_OK):
$ touch /home/gsoares/testfile   <- creating a file, not a directory 
$ doas ./ldapd -r /home/gsoares/testfile ; echo $?  <- no trailing 
/home/gsoares/testfile"/"
0

so for directory existence check, I would suggest to use just stat(2). diff 
attached.
Index: ldapd.c
===
RCS file: /cvs/src/usr.sbin/ldapd/ldapd.c,v
retrieving revision 1.17
diff -u -p -r1.17 ldapd.c
--- ldapd.c 1 Feb 2016 20:00:18 -   1.17
+++ ldapd.c 2 Feb 2016 10:10:43 -
@@ -17,6 +17,7 @@
  */
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -117,6 +118,7 @@ main(int argc, char *argv[])
struct event ev_sigterm;
struct event ev_sigchld;
struct event ev_sighup;
+   struct stat  s;
 
datadir = DATADIR;
log_init(1);/* log to stderr until daemonized */
@@ -178,8 +180,8 @@ main(int argc, char *argv[])
skip_chroot = 1;
}
 
-   if (datadir && chdir(datadir))
-   err(1, "chdir");
+   if ((stat(datadir, &s) == -1) || !S_ISDIR(s.st_mode))
+   errx(1, "Invalid directory");
 
if (!skip_chroot && (pw = getpwnam(LDAPD_USER)) == NULL)
err(1, "%s", LDAPD_USER);


Re: ldapd: add -r option to specify datadir path

2016-02-01 Thread Gleydson Soares
On Mon, Feb 1, 2016 at 5:13 PM, Jérémie Courrèges-Anglas  
wrote:
> Gleydson Soares  writes:
>
>> Hi Landry,
>>
>> On Sun, Jan 31, 2016 at 09:39:52AM +0100, Landry Breuil wrote:
>>> Hi,
>>>
>>> i'm tinkering with ldapd and writing regress tests for it, and to
>>> allow running independent instances (with separate port/control
>>> socket/etc) i needed to add the possibility to specify an alternative
>>> datadir, which was so far #defined in the code.
>>> Patch is pretty simple and works fine, i'm open to suggestions of course
>>> on a better wording for the manpage and option choose (i went for -r..)
>>> okays welcome too !
>>
>> slight tweak,
>> looks like it is missing a chdir(3) to check failure if an 
>> invalid(nonexistent)
>> datadir was passed to optarg.
>>
>> I just added these lines in ldapd.c:
>> 159   if (datadir && chdir(datadir))
>> 160   err(1, "chdir");
>
> Hum, while a check would be nicer, I prefer when daemons stick to /.

It is. ldape() will take care right afterwards.



Re: ldapd: add -r option to specify datadir path

2016-02-01 Thread Gleydson Soares
Hi Landry,

On Sun, Jan 31, 2016 at 09:39:52AM +0100, Landry Breuil wrote:
> Hi,
> 
> i'm tinkering with ldapd and writing regress tests for it, and to
> allow running independent instances (with separate port/control
> socket/etc) i needed to add the possibility to specify an alternative
> datadir, which was so far #defined in the code.
> Patch is pretty simple and works fine, i'm open to suggestions of course
> on a better wording for the manpage and option choose (i went for -r..)
> okays welcome too !

slight tweak,
looks like it is missing a chdir(3) to check failure if an invalid(nonexistent)
datadir was passed to optarg.

I just added these lines in ldapd.c:
159 if (datadir && chdir(datadir))
160 err(1, "chdir");

% doas ./ldapd -r /home/gsoares/non-existentdoas
ldapd: chdir: No such file or directory
% 

updated diff attached.
Index: ldapd.8
===
RCS file: /cvs/src/usr.sbin/ldapd/ldapd.8,v
retrieving revision 1.12
diff -u -p -r1.12 ldapd.8
--- ldapd.8 11 Aug 2014 08:21:55 -  1.12
+++ ldapd.8 1 Feb 2016 18:51:17 -
@@ -57,6 +57,11 @@ Use
 .Ar file
 as the configuration file, instead of the default
 .Pa /etc/ldapd.conf .
+.It Fl r Ar directory
+Store and read database files in
+.Ar directory
+, instead of the default
+.Pa /var/db/ldap .
 .It Fl n
 Configtest mode.
 Only check the configuration file for validity.
Index: ldapd.c
===
RCS file: /cvs/src/usr.sbin/ldapd/ldapd.c,v
retrieving revision 1.15
diff -u -p -r1.15 ldapd.c
--- ldapd.c 24 Dec 2015 17:47:57 -  1.15
+++ ldapd.c 1 Feb 2016 18:51:17 -
@@ -48,6 +48,7 @@ static voidldapd_log_verbose(struct im
 
 struct ldapd_stats  stats;
 pid_t   ldape_pid;
+char *  datadir;
 
 void
 usage(void)
@@ -55,7 +56,7 @@ usage(void)
extern char *__progname;
 
fprintf(stderr, "usage: %s [-dnv] [-D macro=value] "
-   "[-f file] [-s file]\n", __progname);
+   "[-f file] [-r directory] [-s file]\n", __progname);
exit(1);
 }
 
@@ -115,9 +116,10 @@ main(int argc, char *argv[])
struct event ev_sigchld;
struct event ev_sighup;
 
+   datadir = DATADIR;
log_init(1);/* log to stderr until daemonized */
 
-   while ((c = getopt(argc, argv, "dhvD:f:ns:")) != -1) {
+   while ((c = getopt(argc, argv, "dhvD:f:nr:s:")) != -1) {
switch (c) {
case 'd':
debug = 1;
@@ -137,6 +139,9 @@ main(int argc, char *argv[])
case 'n':
configtest = 1;
break;
+   case 'r':
+   datadir = optarg;
+   break;
case 's':
csockpath = optarg;
break;
@@ -174,6 +179,9 @@ main(int argc, char *argv[])
if (!skip_chroot && (pw = getpwnam(LDAPD_USER)) == NULL)
err(1, "%s", LDAPD_USER);
 
+   if (datadir && chdir(datadir))
+   err(1, "chdir");
+
if (!debug) {
if (daemon(1, 0) == -1)
err(1, "failed to daemonize");
@@ -343,7 +351,7 @@ ldapd_open_request(struct imsgev *iev, s
/* make sure path is null-terminated */
oreq->path[PATH_MAX] = '\0';
 
-   if (strncmp(oreq->path, DATADIR, strlen(DATADIR)) != 0) {
+   if (strncmp(oreq->path, datadir, strlen(datadir)) != 0) {
log_warnx("refusing to open file %s", oreq->path);
fatal("ldape sent invalid open request");
}
Index: namespace.c
===
RCS file: /cvs/src/usr.sbin/ldapd/namespace.c,v
retrieving revision 1.14
diff -u -p -r1.14 namespace.c
--- namespace.c 24 Dec 2015 17:47:57 -  1.14
+++ namespace.c 1 Feb 2016 18:51:17 -
@@ -38,6 +38,7 @@ static voidnamespace_queue_replay(int
 static int  namespace_set_fd(struct namespace *ns,
struct btree **bt, int fd, unsigned int flags);
 
+extern char*datadir;
 int
 namespace_begin_txn(struct namespace *ns, struct btree_txn **data_txn,
 struct btree_txn **indx_txn, int rdonly)
@@ -115,7 +116,7 @@ namespace_open(struct namespace *ns)
if (ns->sync == 0)
db_flags |= BT_NOSYNC;
 
-   if (asprintf(&ns->data_path, "%s/%s_data.db", DATADIR, ns->suffix) < 0)
+   if (asprintf(&ns->data_path, "%s/%s_data.db", datadir, ns->suffix) < 0)
return -1;
log_info("opening namespace %s", ns->suffix);
ns->data_db = btree_open(ns->data_path, db_flags | BT_REVERSEKEY, 0644);
@@ -124,7 +125,7 @@ namespace_open(struct namespace *ns)
 
btree_set_cache_size(ns->data_db, ns->cache_size);
 
-   if (asprintf(&ns->indx_pa

domainname(1) - make usage __dead

2016-01-29 Thread Gleydson Soares
make usage() __dead and static, while here switch main to return instead of 
exit(3)
? domainname
Index: domainname.c
===
RCS file: /cvs/src/bin/domainname/domainname.c,v
retrieving revision 1.9
diff -u -p -r1.9 domainname.c
--- domainname.c16 Jan 2015 06:39:31 -  1.9
+++ domainname.c29 Jan 2016 18:06:46 -
@@ -39,7 +39,7 @@
 
 extern char *__progname;
 
-void usage(void);
+__dead static void usage(void);
 
 int
 main(int argc, char *argv[])
@@ -66,10 +66,10 @@ main(int argc, char *argv[])
err(1, "getdomainname");
(void)printf("%s\n", domainname);
}
-   exit(0);
+   return(0);
 }
 
-void
+__dead static void
 usage(void)
 {
(void)fprintf(stderr, "usage: %s [name-of-domain]\n", __progname);


Re: whitespace patch rm.c

2016-01-29 Thread Gleydson Soares
Looks right and obvious. OK gsoares@

On Wed, Jan 27, 2016 at 8:25 PM, Edgar Pettijohn
 wrote:
> Index: rm.c
> ===
> RCS file: /cvs/src/bin/rm/rm.c,v
> retrieving revision 1.35
> diff -u -p -u -r1.35 rm.c
> --- rm.c17 Nov 2015 17:17:24 -1.35
> +++ rm.c27 Jan 2016 23:20:05 -
> @@ -399,7 +399,7 @@ checkdot(char **argv)
>  complained = 0;
>  for (t = argv; *t;) {
>  /* strip trailing slashes */
> -p = strrchr (*t, '\0');
> +p = strrchr(*t, '\0');
>  while (--p > *t && *p == '/')
>  *p = '\0';
>
>
> Not subscribed to list "cc" if you wish.
>



Re: [PATCH] octeon.html

2016-01-13 Thread Gleydson Soares
committed, thanks!



Re: ARP input path without KERNEL_LOCK

2015-12-29 Thread Gleydson Soares
On Tue, Dec 29, 2015 at 7:23 AM, Martin Pieuchot  wrote:
> I got one positive test report from Hrvoje Popovski and one from mxb,
> anybody else tried this diff?

seems fine here, no regressions so far...



Re: [patch] basename(1) tweaks

2015-12-24 Thread Gleydson Soares
>> - activate stack protector
>
> Hm? Changing the exit to a return does this?

yes, stack protector only works if the function returns.



relayctl(8): add manpage "log" bits

2015-11-26 Thread Gleydson Soares
hi,

as spotted out by Luis Gustavo  on misc@
http://marc.info/?l=openbsd-misc&m=144859324815165&w=2

relayct(8) manpage is missing the "log" bits.

here is a diff to fix that

OKs?

// gsoares
? relayctl
Index: relayctl.8
===
RCS file: /cvs/src/usr.sbin/relayctl/relayctl.8,v
retrieving revision 1.31
diff -u -p -r1.31 relayctl.8
--- relayctl.8  24 Jul 2015 15:25:08 -  1.31
+++ relayctl.8  27 Nov 2015 04:03:43 -
@@ -42,6 +42,10 @@ Enable the host.
 Start checking its health again.
 .It Cm load Ar filename
 Reload the configuration from the specified file.
+.It Cm log brief
+Disable verbose debug logging.
+.It Cm log verbose
+Enable verbose debug logging.
 .It Cm monitor
 Continuously report any changes in the host checking engine and the
 .Xr pf 4


Re: ntpd(8): Make -n quieter

2015-09-01 Thread Gleydson Soares
On Tue, Sep 01, 2015 at 09:21:03AM +0200, Peter Hessler wrote:
> On 2015 Aug 31 (Mon) at 14:28:11 -0400 (-0400), Michael Reed wrote:
> :On 08/31/15 07:36, Sebastian Benoit wrote:
> :> Michael Reed(m.r...@mykolab.com) on 2015.08.30 14:58:35 -0400:
> :>> Hi all,
> :>>
> :>> If ntpd is run with the -n flag, and /etc/ntpd.conf is parsed without
> :>> error, then "Configuration OK" is printed.  I don't think this is
> :>> particularly useful, as both a lack of an error message and an exit
> :>> value of 0 already indicate success in this case.  This seems to be the
> :>> case for most (many?) programs in the base system, such as doas(1).
> :> 
> :> I like the message. Why is it a problem?
> :> 
> :> /Benno
> :> 
> :
> :It's admittedly not much of a problem, more just to follow the Unix
> :principle of saying nothing if there's nothing wrong.
> :
> :Regards,
> :Michael
> :
> 
> In my mind, -n is explicitly asking for a configuration check, so
> explicitly telling me it's OK is a good thing.

sure,
and if anyone wants less bother, just redirect the stderr like
$ ntpd -n -f /etc/ntpd.conf  2>/dev/null ; echo $?
0

//gsoares



Re: [patch]file: xstrdup just wrappes strdup(3)

2015-06-17 Thread Gleydson Soares
> +   err(1, "xstrdup");

slight tweak, usually the err output is:
err(1, "strdup")



Re: FUSE Patches

2015-06-03 Thread Gleydson Soares

Stefan Sperling  writes:

> On Sun, Feb 22, 2015 at 01:17:27AM +0800, Helg wrote:
>> I thought I might be a bit late with this but thanks for letting me
>> know. I'll keep working on it and submit the patches individually once
>> 5.7 is released.
>
> Any news?


FUSE patches are exciting...
I'm Looking forward to build and test them



Re: Fix for connect race in relayd

2015-05-31 Thread Gleydson Soares
> (The pastebin expire)

patches on tech@ are preferably as inline(text/plain) in the body of the email.
and make sure that your mail client doesn't corrupt it.

most openbsd developers uses mutt,

but there are a lot of MUAs that handle correctly inline content
disposition without mangling the diff
( mail/alpine, mail/mew, mail/mu) or even git-format-patch/git-send-email...

cheers,
gsoares



Re: test null before free in relayd

2015-05-25 Thread Gleydson Soares
On Mon, May 25, 2015 at 1:23 PM, sven falempin  wrote:
> Index: relay.c
> ===
> RCS file: /cvs/src/usr.sbin/relayd/relay.c,v
> retrieving revision 1.194
> diff -u -p -r1.194 relay.c
> --- relay.c 18 May 2015 16:57:20 -  1.194
> +++ relay.c 25 May 2015 16:20:16 -
> @@ -1649,8 +1649,7 @@ relay_close(struct rsession *con, const
> __func__, relay_inflight);
> }
> }
> -   if (con->se_in.buf != NULL)
> -   free(con->se_in.buf);
> +   free(con->se_in.buf);
>
> if (con->se_out.bev != NULL)
> bufferevent_free(con->se_out.bev);
>
>
> --
> -
> () ascii ribbon campaign - against html e-mail
> /\

your diff is incomplete...
well, why just this occurrence? there is others check null before
free(3) in same file.

and please, be more specific adding more details about your changes: eg.:
(I am removing the null check here, because free(3) itself already
check against null).



Re: mg(1) segfault

2015-04-10 Thread Gleydson Soares
> I hate the startup file.
> Look, this is a use after free, but I can't find it...
> 
> #0  0x1b9de0b1b77f in definemacro (f=0, n=1)
> at /usr/src/usr.bin/mg/macro.c:43
> 43  lp2 = lp1->l_fp;
> (gdb) p *maclhead
> $1 = {l_fp = 0xdfdfdfdfdfdfdfdf, l_bp = 0xdfdfdfdfdfdfdfdf, 
>   l_size = -538976289, l_used = -538976289, 
>   l_text = 0xdfdfdfdfdfdfdfdf }

seems that it is in excline(), look:

src/usr.bin/mg/extend.c:907
lp = maclcur->l_fp;
while (lp != maclcur) {
np = lp->l_fp;
free(lp);
lp = np;
}
free(lp);
return (status);

excline() loads .mg file and free(lp) lines afterwards. 

following diff add a cleanline check to make sure that the cleanup was already 
done or not.
avoid user after free in definemacro()/macro.c:45 in cases where excline() take 
care of the free lines cleanup. 

? mg
Index: extend.c
===
RCS file: /cvs/src/usr.bin/mg/extend.c,v
retrieving revision 1.61
diff -u -p -u -p -r1.61 extend.c
--- extend.c24 Mar 2015 22:28:10 -  1.61
+++ extend.c11 Apr 2015 04:41:38 -
@@ -910,6 +910,7 @@ cleanup:
free(lp);
lp = np;
}
+   cleanline = 1;
free(lp);
return (status);
 }
Index: macro.c
===
RCS file: /cvs/src/usr.bin/mg/macro.c,v
retrieving revision 1.16
diff -u -p -u -p -r1.16 macro.c
--- macro.c 19 Mar 2015 21:22:15 -  1.16
+++ macro.c 11 Apr 2015 04:41:38 -
@@ -15,6 +15,7 @@
 #include "key.h"
 #include "macro.h"
 
+int cleanline = 0;
 int inmacro = FALSE;   /* Macro playback in progess */
 int macrodef = FALSE;  /* Macro recording in progress */
 int macrocount = 0;
@@ -38,7 +39,7 @@ definemacro(int f, int n)
}
 
/* free lines allocated for string arguments */
-   if (maclhead != NULL) {
+   if (!cleanline && maclhead != NULL) {
for (lp1 = maclhead->l_fp; lp1 != maclhead; lp1 = lp2) {
lp2 = lp1->l_fp;
free(lp1);
Index: macro.h
===
RCS file: /cvs/src/usr.bin/mg/macro.h,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 macro.h
--- macro.h 18 Nov 2005 20:56:53 -  1.7
+++ macro.h 11 Apr 2015 04:41:38 -
@@ -6,6 +6,7 @@
 
 #define MAXMACRO 256   /* maximum functs in a macro */
 
+extern int cleanline;
 extern int inmacro;
 extern int macrodef;
 extern int macrocount;


Re: mg(1) segfault

2015-04-04 Thread Gleydson Soares
> return (macrodef = FALSE);

but we shouldn't change macrodef here.

? mg
? mg_segfault.diff
? v2_mg_segfault.diff
Index: macro.c
===
RCS file: /cvs/src/usr.bin/mg/macro.c,v
retrieving revision 1.16
diff -u -p -u -p -r1.16 macro.c
--- macro.c 19 Mar 2015 21:22:15 -  1.16
+++ macro.c 4 Apr 2015 16:09:38 -
@@ -34,11 +34,11 @@ definemacro(int f, int n)
 
if (macrodef) {
ewprintf("already defining macro");
-   return (macrodef = FALSE);
+   return (FALSE);
}
 
/* free lines allocated for string arguments */
-   if (maclhead != NULL) {
+   if (macrodef && maclhead != NULL) {
for (lp1 = maclhead->l_fp; lp1 != maclhead; lp1 = lp2) {
lp2 = lp1->l_fp;
free(lp1);


mg(1) segfault

2015-04-04 Thread Gleydson Soares

mg(1) segfault.
it is triggered as follows:

1- echo "(start-kbd-macro)" >> $HOME/.mg
2- open mg and type twice C-x (

find below the backtrace and a patch to fix.
OK?

Program received signal SIGBUS, Bus error.
definemacro (f=Variable "f" is not available.
) at macro.c:43
43  lp2 = lp1->l_fp;
(gdb) backtrace
#0  definemacro (f=Variable "f" is not available.
) at macro.c:43
#1  0x038cecf15606 in doin () at kbd.c:158
#2  0x038cecf16d4b in main (argc=Variable "argc" is not available.
) at main.c:188
(gdb)

? mg
? mg_segfault.diff
Index: macro.c
===
RCS file: /cvs/src/usr.bin/mg/macro.c,v
retrieving revision 1.16
diff -u -p -r1.16 macro.c
--- macro.c 19 Mar 2015 21:22:15 -  1.16
+++ macro.c 4 Apr 2015 13:45:15 -
@@ -38,7 +38,7 @@ definemacro(int f, int n)
}
 
/* free lines allocated for string arguments */
-   if (maclhead != NULL) {
+   if (macrodef && maclhead != NULL) {
for (lp1 = maclhead->l_fp; lp1 != maclhead; lp1 = lp2) {
lp2 = lp1->l_fp;
free(lp1);


Re: [miniroot/install.sub] skip x* sets if do not expect to run X.

2013-01-13 Thread Gleydson Soares
please, disregard this diff.
it is definitely wrong.

-- gsoares



[miniroot/install.sub] skip x* sets if do not expect to run X.

2013-01-11 Thread Gleydson Soares
the diff below changes src/distrib/miniroot/install.sub to by default skip x* 
sets if someone do not expect to run X 
"Do you expect to run the X Window System [no]"

if someone still want to install those sets may select by hand afterwards:
"Set name(s)? (or 'abort' or 'done') [done] x*" 

i've compile a RAMDISK_CD and seems to work fine.

ok? feedback?
Index: install.sub
===
RCS file: /cvs/src/distrib/miniroot/install.sub,v
retrieving revision 1.674
diff -u -p -r1.674 install.sub
--- install.sub 2 Jan 2013 20:35:00 -   1.674
+++ install.sub 11 Jan 2013 23:41:45 -
@@ -1098,8 +1098,9 @@ install_files() {
for _f in $THESETS; do
isin $_f $_files || continue;
_sets=$(addel $_f $_sets)
-   if [[ -z $DISPLAY && ! -d /mnt/etc/X11 ]]; then
-   # No displays and X isn't installed ==> skip X sets
+   if [[ -z $DISPLAY && ! -d /mnt/etc/X11 || $x11 == n ]]; then
+   # No displays and X isn't installed or do not expect to 
run X
+   # => skip X sets
isin ${_f%${VERSION}.tgz} xbase xetc xshare xfont xserv 
&& continue
fi
isin $_f $DEFAULTSETS "site$VERSION-$(hostname -s).tgz" && \



Re: M_DONTWAIT -> M_NOWAIT

2012-12-28 Thread Gleydson Soares
On Fri, Dec 28, 2012 at 1:25 PM, Todd C. Miller
 wrote:
> OK for all but that m_split() change where M_DONTWAIT is actually
> appropriate.  We shouldn't be using M_DONTWAIT for malloc() but it
> is correct for the mbuf functions.

Ooops. good catch. m_split() was changed by a lack of attention.
diff fixed and committed. thanks.



M_DONTWAIT -> M_NOWAIT

2012-12-28 Thread Gleydson Soares
following diff tweak malloc(9) to use M_NOWAIT instead of M_DONTWAIT.
this will make the code more consistent since that M_DONTWAIT is a flag defined 
for mbuf(9),
so we shouldn't to confuse.

no functional change since that M_DONTWAIT is defined as M_NOWAIT in mbuf.h.

OK ?
Index: net/bpf.c
===
RCS file: /cvs/src/sys/net/bpf.c,v
retrieving revision 1.82
diff -u -p -r1.82 bpf.c
--- net/bpf.c   21 Dec 2012 11:17:22 -  1.82
+++ net/bpf.c   28 Dec 2012 14:00:32 -
@@ -1482,7 +1482,7 @@ void
 bpfattach(caddr_t *driverp, struct ifnet *ifp, u_int dlt, u_int hdrlen)
 {
struct bpf_if *bp;
-   bp = (struct bpf_if *)malloc(sizeof(*bp), M_DEVBUF, M_DONTWAIT);
+   bp = (struct bpf_if *)malloc(sizeof(*bp), M_DEVBUF, M_NOWAIT);
 
if (bp == 0)
panic("bpfattach");
Index: net/pf_if.c
===
RCS file: /cvs/src/sys/net/pf_if.c,v
retrieving revision 1.63
diff -u -p -r1.63 pf_if.c
--- net/pf_if.c 28 Jul 2011 11:03:49 -  1.63
+++ net/pf_if.c 28 Dec 2012 14:00:32 -
@@ -112,7 +112,7 @@ pfi_kif_get(const char *kif_name)
return (kif);
 
/* create new one */
-   if ((kif = malloc(sizeof(*kif), PFI_MTYPE, M_DONTWAIT|M_ZERO)) == NULL)
+   if ((kif = malloc(sizeof(*kif), PFI_MTYPE, M_NOWAIT|M_ZERO)) == NULL)
return (NULL);
 
strlcpy(kif->pfik_name, kif_name, sizeof(kif->pfik_name));
Index: net/pfkeyv2.c
===
RCS file: /cvs/src/sys/net/pfkeyv2.c,v
retrieving revision 1.127
diff -u -p -r1.127 pfkeyv2.c
--- net/pfkeyv2.c   26 Sep 2012 14:53:23 -  1.127
+++ net/pfkeyv2.c   28 Dec 2012 14:00:32 -
@@ -155,7 +155,7 @@ pfkeyv2_create(struct socket *socket)
struct pfkeyv2_socket *pfkeyv2_socket;
 
if (!(pfkeyv2_socket = malloc(sizeof(struct pfkeyv2_socket),
-   M_PFKEY, M_DONTWAIT | M_ZERO)))
+   M_PFKEY, M_NOWAIT | M_ZERO)))
return (ENOMEM);
 
pfkeyv2_socket->next = pfkeyv2_sockets;
@@ -228,7 +228,7 @@ pfkeyv2_sendmessage(void **headers, int 
 
/* ...and allocate it */
if (!(buffer = malloc(j + sizeof(struct sadb_msg), M_PFKEY,
-   M_DONTWAIT))) {
+   M_NOWAIT))) {
rval = ENOMEM;
goto ret;
}
@@ -391,7 +391,7 @@ pfkeyv2_policy(struct ipsec_acquire *ipa
return (EINVAL);
}
 
-   if (!(p = malloc(i, M_PFKEY, M_DONTWAIT | M_ZERO))) {
+   if (!(p = malloc(i, M_PFKEY, M_NOWAIT | M_ZERO))) {
rval = ENOMEM;
goto ret;
} else
@@ -606,7 +606,7 @@ pfkeyv2_get(struct tdb *sa, void **heade
goto ret;
}
 
-   if (!(p = malloc(i, M_PFKEY, M_DONTWAIT | M_ZERO))) {
+   if (!(p = malloc(i, M_PFKEY, M_NOWAIT | M_ZERO))) {
rval = ENOMEM;
goto ret;
} else
@@ -893,7 +893,7 @@ pfkeyv2_send(struct socket *socket, void
struct mbuf *packet;
 
if (!(freeme = malloc(sizeof(struct sadb_msg) + len, M_PFKEY,
-   M_DONTWAIT))) {
+   M_NOWAIT))) {
rval = ENOMEM;
goto ret;
}
@@ -958,7 +958,7 @@ pfkeyv2_send(struct socket *socket, void
 
/* Send a message back telling what the SA (the SPI really) is 
*/
if (!(freeme = malloc(sizeof(struct sadb_sa), M_PFKEY,
-   M_DONTWAIT | M_ZERO))) {
+   M_NOWAIT | M_ZERO))) {
rval = ENOMEM;
goto ret;
}
@@ -1341,7 +1341,7 @@ pfkeyv2_send(struct socket *socket, void
 
i = sizeof(struct sadb_supported) + sizeof(ealgs);
 
-   if (!(freeme = malloc(i, M_PFKEY, M_DONTWAIT | M_ZERO))) {
+   if (!(freeme = malloc(i, M_PFKEY, M_NOWAIT | M_ZERO))) {
rval = ENOMEM;
goto ret;
}
@@ -1359,7 +1359,7 @@ pfkeyv2_send(struct socket *socket, void
 
i = sizeof(struct sadb_supported) + sizeof(aalgs);
 
-   if (!(freeme = malloc(i, M_PFKEY, M_DONTWAIT | M_ZERO))) {
+   if (!(freeme = malloc(i, M_PFKEY, M_NOWAIT | M_ZERO))) {
rval = ENOMEM;
goto ret;
}
@@ -1380,7 +1380,7 @@ pfkeyv2_send(struct socket *socket, void
 
i = sizeof(struct sadb_supported) + sizeof(calgs);
 
-   if (!(freeme = malloc(i, M_PFKEY, M_DONTWAIT | M_ZERO))) {
+   if (!(freeme = malloc(i, M_PFKEY, M_NOWAIT | M_ZERO))) {
rval = ENOMEM;
goto ret;
}
@@ -1713,7 +1713,7 @@ pfkeyv2_send(struct socket *socket, void
sizeof(struct sad

set ifp->if_baudrate with IF_Gbps() / IF_Mbps()

2012-11-23 Thread Gleydson Soares
set ifp->if_baudrate with IF_Gbps() / IF_Mbps().

OK ?
Index: if_ste.c
===
RCS file: /cvs/src/sys/dev/pci/if_ste.c,v
retrieving revision 1.48
diff -u -p -r1.48 if_ste.c
--- if_ste.c18 Oct 2012 21:44:21 -  1.48
+++ if_ste.c23 Nov 2012 14:07:41 -
@@ -931,7 +931,7 @@ ste_attach(struct device *parent, struct
ifp->if_ioctl = ste_ioctl;
ifp->if_start = ste_start;
ifp->if_watchdog = ste_watchdog;
-   ifp->if_baudrate = 1000;
+   ifp->if_baudrate = IF_Mbps(100);
IFQ_SET_MAXLEN(&ifp->if_snd, STE_TX_LIST_CNT - 1);
IFQ_SET_READY(&ifp->if_snd);
bcopy(sc->sc_dev.dv_xname, ifp->if_xname, IFNAMSIZ);
Index: if_tl.c
===
RCS file: /cvs/src/sys/dev/pci/if_tl.c,v
retrieving revision 1.51
diff -u -p -r1.51 if_tl.c
--- if_tl.c 22 Jun 2011 16:44:27 -  1.51
+++ if_tl.c 23 Nov 2012 14:07:42 -
@@ -2125,7 +2125,7 @@ tl_attach(parent, self, aux)
ifp->if_ioctl = tl_ioctl;
ifp->if_start = tl_start;
ifp->if_watchdog = tl_watchdog;
-   ifp->if_baudrate = 1000;
+   ifp->if_baudrate = IF_Mbps(100);
IFQ_SET_MAXLEN(&ifp->if_snd, TL_TX_LIST_CNT - 1);
IFQ_SET_READY(&ifp->if_snd);
bcopy(sc->sc_dev.dv_xname, ifp->if_xname, IFNAMSIZ);
Index: if_txp.c
===
RCS file: /cvs/src/sys/dev/pci/if_txp.c,v
retrieving revision 1.104
diff -u -p -r1.104 if_txp.c
--- if_txp.c5 Apr 2011 18:01:21 -   1.104
+++ if_txp.c23 Nov 2012 14:07:42 -
@@ -225,7 +225,7 @@ txp_attachhook(void *vsc)
ifp->if_ioctl = txp_ioctl;
ifp->if_start = txp_start;
ifp->if_watchdog = txp_watchdog;
-   ifp->if_baudrate = 1000;
+   ifp->if_baudrate = IF_Mbps(100);
IFQ_SET_MAXLEN(&ifp->if_snd, TX_ENTRIES);
IFQ_SET_READY(&ifp->if_snd);
ifp->if_capabilities = 0;
Index: if_vge.c
===
RCS file: /cvs/src/sys/dev/pci/if_vge.c,v
retrieving revision 1.51
diff -u -p -r1.51 if_vge.c
--- if_vge.c22 Jun 2011 16:44:27 -  1.51
+++ if_vge.c23 Nov 2012 14:07:42 -
@@ -787,7 +787,7 @@ vge_attach(struct device *parent, struct
ifp->if_ioctl = vge_ioctl;
ifp->if_start = vge_start;
ifp->if_watchdog = vge_watchdog;
-   ifp->if_baudrate = 10;
+   ifp->if_baudrate = IF_Gbps(1);
 #ifdef VGE_JUMBO
ifp->if_hardmtu = VGE_JUMBO_MTU;
 #endif
Index: if_vr.c
===
RCS file: /cvs/src/sys/dev/pci/if_vr.c,v
retrieving revision 1.117
diff -u -p -r1.117 if_vr.c
--- if_vr.c 20 Oct 2012 16:12:22 -  1.117
+++ if_vr.c 23 Nov 2012 14:07:42 -
@@ -623,7 +623,7 @@ vr_attach(struct device *parent, struct 
ifp->if_ioctl = vr_ioctl;
ifp->if_start = vr_start;
ifp->if_watchdog = vr_watchdog;
-   ifp->if_baudrate = 1000;
+   ifp->if_baudrate = IF_Mbps(100);
ifp->if_capabilities = 0;
IFQ_SET_READY(&ifp->if_snd);
bcopy(sc->sc_dev.dv_xname, ifp->if_xname, IFNAMSIZ);
Index: if_wb.c
===
RCS file: /cvs/src/sys/dev/pci/if_wb.c,v
retrieving revision 1.49
diff -u -p -r1.49 if_wb.c
--- if_wb.c 18 Oct 2012 21:44:21 -  1.49
+++ if_wb.c 23 Nov 2012 14:07:42 -
@@ -794,7 +794,7 @@ wb_attach(parent, self, aux)
ifp->if_ioctl = wb_ioctl;
ifp->if_start = wb_start;
ifp->if_watchdog = wb_watchdog;
-   ifp->if_baudrate = 1000;
+   ifp->if_baudrate = IF_Mbps(100);
IFQ_SET_MAXLEN(&ifp->if_snd, WB_TX_LIST_CNT - 1);
IFQ_SET_READY(&ifp->if_snd);



fix altq.9

2012-11-14 Thread Gleydson Soares
splimp -> splnet

OK ?
Index: altq.9
===
RCS file: /cvs/src/share/man/man9/altq.9,v
retrieving revision 1.14
diff -u -p -r1.14 altq.9
--- altq.9  31 May 2007 19:20:00 -  1.14
+++ altq.9  14 Nov 2012 19:11:03 -
@@ -272,7 +272,7 @@ looks as follows:
|
| mflags = m->m_flags;
| len = m->m_pkthdr.len;
- s = splimp(); | s = splimp();
+ s = splnet(); | s = splnet();
  if (IF_QFULL(&ifp->if_snd)) { | IFQ_ENQUEUE(&ifp->if_snd, m,
| NULL, error);
  IF_DROP(&ifp->if_snd);| if (error != 0) {
@@ -419,7 +419,7 @@ immediately after
 .Fn IFQ_POLL
 returns the same packet.
 Note that they need to be guarded by
-.Fn splimp
+.Fn splnet
 if called from outside of
 .Fn if_start .
 .Ss Eliminating IF_PREPEND
@@ -571,7 +571,7 @@ The dequeue operations looks like:
 .Bd -literal
 ##old-style##   ##new-style##
|
- s = splimp(); | s = splimp();
+ s = splnet(); | s = splnet();
  IF_DEQUEUE(&sc->sc_fastq, m); | IF_DEQUEUE(&sc->sc_fastq, m);
  if (m == NULL)| if (m == NULL)
  IF_DEQUEUE(&sc->sc_if.if_snd, m); | IFQ_DEQUEUE(&sc->sc_if.if_snd, m);



usr.bin/mail: use F_OK instead of 0 in access()

2012-11-13 Thread Gleydson Soares
hi,

use F_OK macro instead of 0 in access() when cheching by file existence. make 
de code easier to read. no funcional change.

OK ?
Index: cmd2.c
===
RCS file: /cvs/src/usr.bin/mail/cmd2.c,v
retrieving revision 1.18
diff -u -p -r1.18 cmd2.c
--- cmd2.c  6 Apr 2011 11:36:26 -   1.18
+++ cmd2.c  13 Nov 2012 18:54:35 -
@@ -166,7 +166,7 @@ save1(char *str, int mark, char *cmd, st
return(1);
printf("\"%s\" ", file);
fflush(stdout);
-   if (access(file, 0) >= 0)
+   if (access(file, F_OK) >= 0)
disp = "[Appended]";
else
disp = "[New file]";



src/sys/net/if_pflow.c - fix kernel builds without bpfilter

2012-11-08 Thread Gleydson Soares
Hi,

protect bpfilter portion with #if NBPFILTER > 0.
fix kernel builds without bpfilter.

OK ?
Index: if_pflow.c
===
RCS file: /cvs/src/sys/net/if_pflow.c,v
retrieving revision 1.21
diff -u -p -r1.21 if_pflow.c
--- if_pflow.c  30 Oct 2012 12:09:05 -  1.21
+++ if_pflow.c  8 Nov 2012 13:49:13 -
@@ -1106,7 +1106,9 @@ pflow_sendout_mbuf(struct pflow_softc *s
 {
struct udpiphdr *ui;
u_int16_tlen = m->m_pkthdr.len;
+#if NBPFILTER > 0
struct ifnet*ifp = &sc->sc_if;
+#endif
struct ip   *ip;
int  err;



Re: Virtio drivers for OpenBSD

2012-07-11 Thread Gleydson Soares
could you resubmit a new diff against -current ?
please, attach it inline here.

On Wed, Jul 11, 2012 at 9:07 AM, Stefan Fritsch  wrote:
> Hi,
>
> I have been working on porting NetBSD's virtio drivers to OpenBSD.  I am
> not finished yet, but in order to prevent duplicate work, I thought I'd
> publish the current state (attached as diff to OpenBSD 5.1). It adds a
> virtio block device driver (viod) and a virtio network interface
> (if_vioif). It is stable enough to run make -j 2 in /usr/src on a viod
> disk.
>
> Comments are welcome.
>
> BTW: Which device numbers should I choose for viod? Use the first unused
> number or just add virtio at the end?
>
> Cheers,
> Stefan
>
> [demime 1.01d removed an attachment of type TEXT/x-diff which had a name of 
> openbsd-virtio-v1.diff]



Re: [resend] ipv6 support for tftp

2012-04-27 Thread Gleydson Soares
On Fri, Apr 27, 2012 at 12:34:19PM -0400, Brad Smith wrote:
> Tested against OpenBSD's tftpd and dnsmasq. Working fine for me.

here is an updated version of the diff.

- setpeer0() and setpeer() were renamed accordingly for clarity and 
consistency. (requested by henning@)
- fix memleak(call freeaddrinfo() to release *res0)
- checks against valid server port number
- man page tweaked based on points by sthen@ and jmc@

this diff has been OK by sthen@ jmc@ henning@
i will commit it tomorrow if no objections till there.
? 1
? tftp_ipv6_3.diff
Index: main.c
===
RCS file: /cvs/src/usr.bin/tftp/main.c,v
retrieving revision 1.30
diff -u -p -r1.30 main.c
--- main.c  27 Oct 2009 23:59:44 -  1.30
+++ main.c  24 Apr 2012 15:39:19 -
@@ -68,7 +68,8 @@ void   put(int, char **);
 voidquit(int, char **);
 voidsetascii(int, char **);
 voidsetbinary(int, char **);
-voidsetpeer(int, char **);
+voidsetpeer(char *, char *);
+voidparsearg(int, char **);
 voidsetrexmt(int, char **);
 voidsettimeout(int, char **);
 voidsettrace(int, char **);
@@ -86,9 +87,8 @@ static __dead void command(void);
 struct cmd *getcmd(char *);
 char   *tail(char *);
 
-struct sockaddr_in  peeraddr;
+struct sockaddr_storage peeraddr;
 int f;
-short   port;
 int trace;
 int verbose;
 int connected;
@@ -98,7 +98,6 @@ intmargc;
 char   *margv[MAXARGV+1];
 char   *prompt = "tftp";
 voidintr(int);
-struct servent *sp;
 int rexmtval = TIMEOUT;
 int maxtimeout = 5 * TIMEOUT;
 charhostname[MAXHOSTNAMELEN];
@@ -134,7 +133,7 @@ struct cmd {
 };
 
 struct cmd cmdtab[] = {
-   { "connect",chelp,  setpeer },
+   { "connect",chelp,  parsearg },
{ "mode",   mhelp,  modecmd },
{ "put",shelp,  put },
{ "get",rhelp,  get },
@@ -170,26 +169,14 @@ structmodes {
 int
 main(int argc, char *argv[])
 {
-   struct sockaddr_in  s_in;
-
-   /* socket, bind */
-   sp = getservbyname("tftp", "udp");
-   if (sp == 0)
-   errx(1, "udp/tftp: unknown service");
-   f = socket(AF_INET, SOCK_DGRAM, 0);
-   if (f < 0)
-   err(3, "socket");
-   bzero((char *)&s_in, sizeof(s_in));
-   s_in.sin_family = AF_INET;
-   if (bind(f, (struct sockaddr *)&s_in, sizeof(s_in)) < 0)
-   err(1, "bind");
+   f = -1;
 
/* set default transfer mode */
strlcpy(mode, "netascii", sizeof(mode));
 
/* set peer if given */
if (argc > 1)
-   setpeer(argc, argv);
+   parsearg(argc, argv);
 
/* catch SIGINT */
signal(SIGINT, intr);
@@ -205,11 +192,73 @@ main(int argc, char *argv[])
 }
 
 void
-setpeer(int argc, char *argv[])
+setpeer(char *host, char *port)
 {
-   struct hostent  *host;
-   const char  *errstr;
+   struct addrinfo hints, *res0, *res;
+   int error;
+   struct sockaddr_storage ss;
+   char *cause = "unknown";
+
+   if (connected) {
+   close(f);
+   f = -1;
+   }
+   connected = 0;
+
+   memset(&hints, 0, sizeof(hints));
+   hints.ai_family = PF_UNSPEC;
+   hints.ai_socktype = SOCK_DGRAM;
+   hints.ai_protocol = IPPROTO_UDP;
+   hints.ai_flags = AI_CANONNAME;
+   if (!port)
+   port = "tftp";
+   error = getaddrinfo(host, port, &hints, &res0);
+   if (error) {
+   warnx("%s", gai_strerror(error));
+   return;
+   }
+
+   for (res = res0; res; res = res->ai_next) {
+   if (res->ai_addrlen > sizeof(peeraddr))
+   continue;
+   f = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
+   if (f < 0) {
+   cause = "socket";
+   continue;
+   }
 
+   memset(&ss, 0, sizeof(ss));
+   ss.ss_family = res->ai_family;
+   ss.ss_len = res->ai_addrlen;
+   if (bind(f, (struct sockaddr *)&ss, ss.ss_len) < 0) {
+   cause = "bind";
+   close(f);
+   f = -1;
+   continue;
+   }
+
+   break;
+   }
+
+   if (f < 0)
+   warn("%s", cause);
+   else {
+   /* res->ai_addr <= sizeof(peeraddr) is guaranteed */
+   memcpy(&peeraddr, res->ai_addr, res->ai_addrlen);
+   if (res->ai_canonname) {
+  

Re: [resend] ipv6 support for tftp

2012-04-19 Thread Gleydson Soares
On Tue, Mar 06, 2012 at 09:32:47AM +, Stuart Henderson wrote:
> On 2011/01/22 19:40, Gleydson Soares wrote:
> > can anyone test this diff? your feedback will be most welcome
> > On Wed, Sep 08, 2010 at 11:51:11AM -0300, Gleydson Soares wrote:
> > > hi,
> > > 
> > > - ipv6 support for tftp client.
> > > 
> > > based on an old itojun's diff.
> 
> weerd@ pointed out this old diff - here's a slightly updated version;
> only minor tweaks from gsoares@ version: whitespace nits in some lines
> touched in the diff, and I rewrote the manpage diff.
> 
> works for me against usr/sbin/tftpd; any comments?

anyone willing to give this diff a go?
Index: main.c
===
RCS file: /cvs/src/usr.bin/tftp/main.c,v
retrieving revision 1.30
diff -u -p -r1.30 main.c
--- main.c  27 Oct 2009 23:59:44 -  1.30
+++ main.c  19 Apr 2012 18:47:44 -
@@ -68,6 +68,7 @@ void   put(int, char **);
 voidquit(int, char **);
 voidsetascii(int, char **);
 voidsetbinary(int, char **);
+voidsetpeer0(char *, char *);
 voidsetpeer(int, char **);
 voidsetrexmt(int, char **);
 voidsettimeout(int, char **);
@@ -86,9 +87,8 @@ static __dead void command(void);
 struct cmd *getcmd(char *);
 char   *tail(char *);
 
-struct sockaddr_in  peeraddr;
+struct sockaddr_storage peeraddr;
 int f;
-short   port;
 int trace;
 int verbose;
 int connected;
@@ -98,7 +98,6 @@ intmargc;
 char   *margv[MAXARGV+1];
 char   *prompt = "tftp";
 voidintr(int);
-struct servent *sp;
 int rexmtval = TIMEOUT;
 int maxtimeout = 5 * TIMEOUT;
 charhostname[MAXHOSTNAMELEN];
@@ -170,19 +169,7 @@ struct modes {
 int
 main(int argc, char *argv[])
 {
-   struct sockaddr_in  s_in;
-
-   /* socket, bind */
-   sp = getservbyname("tftp", "udp");
-   if (sp == 0)
-   errx(1, "udp/tftp: unknown service");
-   f = socket(AF_INET, SOCK_DGRAM, 0);
-   if (f < 0)
-   err(3, "socket");
-   bzero((char *)&s_in, sizeof(s_in));
-   s_in.sin_family = AF_INET;
-   if (bind(f, (struct sockaddr *)&s_in, sizeof(s_in)) < 0)
-   err(1, "bind");
+   f = -1;
 
/* set default transfer mode */
strlcpy(mode, "netascii", sizeof(mode));
@@ -205,11 +192,69 @@ main(int argc, char *argv[])
 }
 
 void
-setpeer(int argc, char *argv[])
+setpeer0(char *host, char *port)
 {
-   struct hostent  *host;
-   const char  *errstr;
+   struct addrinfo hints, *res0, *res;
+   int error;
+   struct sockaddr_storage ss;
+   char *cause = "unknown";
+
+   if (connected) {
+   close(f);
+   f = -1;
+   connected = 0;
+   }
+
+   memset(&hints, 0, sizeof(hints));
+   hints.ai_family = PF_UNSPEC;
+   hints.ai_socktype = SOCK_DGRAM;
+   hints.ai_protocol = IPPROTO_UDP;
+   hints.ai_flags = AI_CANONNAME;
+   if (!port)
+   port = "tftp";
+   error = getaddrinfo(host, port, &hints, &res0);
+   if (error) {
+   warnx("%s", gai_strerror(error));
+   return;
+   }
+
+   for (res = res0; res; res = res->ai_next) {
+   f = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
+   if (f < 0) {
+   cause = "socket";
+   continue;
+   }
+
+   memset(&ss, 0, sizeof(ss));
+   ss.ss_family = res->ai_family;
+   ss.ss_len = res->ai_addrlen;
+   if (bind(f, (struct sockaddr *)&ss, ss.ss_len) < 0) {
+   cause = "bind";
+   close(f);
+   f = -1;
+   continue;
+   }
+
+   break;
+   }
+
+   if (f < 0)
+   warn("%s", cause);
+   else {
+   memcpy(&peeraddr, res->ai_addr, res->ai_addrlen);
+   if (res->ai_canonname) {
+   (void) strncpy(hostname, res->ai_canonname,
+   sizeof(hostname));
+   } else
+   (void) strncpy(hostname, host, sizeof(hostname));
+   hostname[sizeof(hostname)-1] = 0;
+   connected = 1;
+   }
+}
 

bgplg: use -A with traceroute6 to print the AS number

2012-03-27 Thread Gleydson Soares
now that we've the option -A with traceroute6, bgplg is happy to use

OK ?
Index: bgplg.h
===
RCS file: /cvs/src/usr.bin/bgplg/bgplg.h,v
retrieving revision 1.8
diff -u -p -r1.8 bgplg.h
--- bgplg.h 8 Nov 2011 12:21:29 -   1.8
+++ bgplg.h 28 Mar 2012 01:51:38 -
@@ -67,7 +67,7 @@ struct cmd {
{ "ping", 1, 1, "
", \ { PING, "-c4", "-w2", NULL } }, \ { "traceroute6", 1, 1, "
", \ - { TRACEROUTE6, "-l", NULL } }, \ + { TRACEROUTE6, "-Al", NULL } }, \ { "ping6", 1, 1, "
", \ { PING6, "-c4", "-i2", NULL } },\ { "help", 0, 0, NULL, { NULL }, lg_help }, \

Re: etc/rc.d/ldapd stop - pexp - ldapd: ldap server

2011-09-20 Thread Gleydson Soares
On Tue, Sep 20, 2011 at 04:33:10PM +0200, MERIGHI Marcus wrote:
> anyone?

it is in,
already committed.

> 
> mcmer-open...@tor.at (MERIGHI Marcus), 2011.09.09 (Fri) 16:22 (CEST):
> > Hello, 
> > 
> > the stock 
> > $ /etc/rc.d/ldapd stop 
> > does not work for me. The diff below makes it work.
> > 
> > Index: ldapd
> > ===
> > RCS file: /cvs/src/etc/rc.d/ldapd,v
> > retrieving revision 1.1
> > diff -u -r1.1 ldapd
> > --- ldapd   6 Jul 2011 18:55:36 -   1.1
> > +++ ldapd   9 Sep 2011 14:14:15 -
> > @@ -6,4 +6,6 @@
> >  
> >  . /etc/rc.d/rc.subr
> >  
> > +pexp="ldapd: ldap server.*"
> > +
> >  rc_cmd $1



plug a memleak in output_listing()

2011-02-11 Thread Gleydson Soares
plug a memleak in output_listing(); from NetBSD
Index: aicasm.c
===
RCS file: /cvs/src/sys/dev/microcode/aic7xxx/aicasm.c,v
retrieving revision 1.14
diff -u -r1.14 aicasm.c
--- aicasm.c4 Oct 2005 23:46:14 -   1.14
+++ aicasm.c11 Feb 2011 22:24:44 -
@@ -594,6 +594,7 @@
if (isatty(fileno(stdin)) == 0)
putchar(input);
}
+   free(func_values);
fprintf(stdout, "\nThanks!\n");
}



typo inteface->interface (pipex_local.h)

2011-01-23 Thread Gleydson Soares
Index: pipex_local.h
===
RCS file: /cvs/src/sys/net/pipex_local.h,v
retrieving revision 1.10
diff -u -r1.10 pipex_local.h
--- pipex_local.h   20 Nov 2010 20:11:19 -  1.10
+++ pipex_local.h   23 Jan 2011 13:35:04 -
@@ -76,7 +76,7 @@
 
 #ifdef PIPEX_PPPOE
 struct pipex_pppoe_session {
-   struct ifnet *over_ifp; /* ether inteface */
+   struct ifnet *over_ifp; /* ether interface */
 };
 #endif /* PIPEX_PPPOE */



[resend] ipv6 support for tftp

2011-01-22 Thread Gleydson Soares
can anyone test this diff? your feedback will be most welcome
On Wed, Sep 08, 2010 at 11:51:11AM -0300, Gleydson Soares wrote:
> hi,
> 
> - ipv6 support for tftp client.
> 
> based on an old itojun's diff.

Index: tftpsubs.c
===
RCS file: /cvs/src/usr.bin/tftp/tftpsubs.c,v
retrieving revision 1.14
diff -u -r1.14 tftpsubs.c
--- tftpsubs.c  27 Oct 2009 23:59:44 -  1.14
+++ tftpsubs.c  8 Sep 2010 14:01:19 -
@@ -258,7 +258,7 @@
 {
int i, j = 0;
charrbuf[SEGSIZE_MIN];
-   struct sockaddr_in  from;
+   struct sockaddr_storage from;
socklen_t   fromlen;
 
for (;;) {
Index: tftp.c
===
RCS file: /cvs/src/usr.bin/tftp/tftp.c,v
retrieving revision 1.22
diff -u -r1.22 tftp.c
--- tftp.c  27 Oct 2009 23:59:44 -  1.22
+++ tftp.c  8 Sep 2010 14:01:39 -
@@ -58,7 +58,7 @@
 #include "tftpsubs.h"
 
 static int makerequest(int, const char *, struct tftphdr *, const char *);
-static voidnak(int);
+static voidnak(int, struct sockaddr *);
 static voidtpacket(const char *, struct tftphdr *, int);
 static voidstartclock(void);
 static voidstopclock(void);
@@ -67,7 +67,7 @@
 static voidoack(struct tftphdr *, int, int);
 static int oack_set(const char *, const char *);
 
-extern struct sockaddr_in   peeraddr;  /* filled in by main */
+extern struct sockaddr_storage  peeraddr;  /* filled in by main */
 extern int  f; /* the opened socket */
 extern int  trace;
 extern int  verbose;
@@ -124,7 +124,8 @@
 sendfile(int fd, char *name, char *mode)
 {
struct tftphdr  *dp, *ap; /* data and ack packets */
-   struct sockaddr_in   from;
+   struct sockaddr_storage  from;
+   struct sockaddr_storage peer;
struct pollfdpfd[1];
unsigned longamount;
socklen_tfromlen;
@@ -138,6 +139,7 @@
convert = !strcmp(mode, "netascii");
block = 0;
amount = 0;
+   memcpy(&peer, &peeraddr, peeraddr.ss_len);
 
do {
/* read data from file */
@@ -146,7 +148,7 @@
else {
size = readit(file, &dp, convert, segment_size);
if (size < 0) {
-   nak(errno + 100);
+   nak(errno + 100, (struct sockaddr *)&peer);
break;
}
dp->th_opcode = htons((u_short)DATA);
@@ -164,8 +166,8 @@
if (trace)
tpacket("sent", dp, size + 4);
if (sendto(f, dp, size + 4, 0,
-   (struct sockaddr *)&peeraddr,
-   sizeof(peeraddr)) != size + 4) {
+   (struct sockaddr *)&peer,
+   peer.ss_len) != size + 4) {
warn("sendto");
goto abort;
}
@@ -202,7 +204,19 @@
warn("recvfrom");
goto abort;
}
-   peeraddr.sin_port = from.sin_port;  /* added */
+   switch (peer.ss_family) {   /* added */
+   case AF_INET:
+   ((struct sockaddr_in *)&peer)->sin_port =
+   ((struct sockaddr_in *)&from)->sin_port;
+   break;
+   case AF_INET6:
+   ((struct sockaddr_in6 *)&peer)->sin6_port =
+   ((struct sockaddr_in6 *)&from)->sin6_port;
+   break;
+   default:
+   /* unsupported */
+   break;
+   }
if (trace)
tpacket("received", ap, n);
 
@@ -256,7 +270,8 @@
 recvfile(int fd, char *name, char *mode)
 {
struct tftphdr  *dp, *ap; /* data and ack packets */
-   struct sockaddr_in   from;
+   struct sockaddr_storage  from;
+   struct sockaddr_storage peer;
struct pollfdpfd[1];
unsigned longamount;
socklen_tfromlen;
@@ -273,6 +288,7 @@
block = 1;
amount = 0;
firsttrip = 1;
+   memcpy(&peer, &peeraddr, peeraddr.ss_len);
 
 options:
do {
@@ -298,8 +314,8 @

Re: ipv6 support for tftp

2010-09-08 Thread Gleydson Soares
On Wed, Sep 08, 2010 at 11:51:11AM -0300, Gleydson Soares wrote:
> hi,
> 
> - ipv6 support for tftp client.
> 
> based on an old itojun's diff.

i forgot to attach the diff inline.
Index: tftpsubs.c
===
RCS file: /cvs/src/usr.bin/tftp/tftpsubs.c,v
retrieving revision 1.14
diff -u -r1.14 tftpsubs.c
--- tftpsubs.c  27 Oct 2009 23:59:44 -  1.14
+++ tftpsubs.c  8 Sep 2010 14:01:19 -
@@ -258,7 +258,7 @@
 {
int i, j = 0;
charrbuf[SEGSIZE_MIN];
-   struct sockaddr_in  from;
+   struct sockaddr_storage from;
socklen_t   fromlen;
 
for (;;) {
Index: tftp.c
===
RCS file: /cvs/src/usr.bin/tftp/tftp.c,v
retrieving revision 1.22
diff -u -r1.22 tftp.c
--- tftp.c  27 Oct 2009 23:59:44 -  1.22
+++ tftp.c  8 Sep 2010 14:01:39 -
@@ -58,7 +58,7 @@
 #include "tftpsubs.h"
 
 static int makerequest(int, const char *, struct tftphdr *, const char *);
-static voidnak(int);
+static voidnak(int, struct sockaddr *);
 static voidtpacket(const char *, struct tftphdr *, int);
 static voidstartclock(void);
 static voidstopclock(void);
@@ -67,7 +67,7 @@
 static voidoack(struct tftphdr *, int, int);
 static int oack_set(const char *, const char *);
 
-extern struct sockaddr_in   peeraddr;  /* filled in by main */
+extern struct sockaddr_storage  peeraddr;  /* filled in by main */
 extern int  f; /* the opened socket */
 extern int  trace;
 extern int  verbose;
@@ -124,7 +124,8 @@
 sendfile(int fd, char *name, char *mode)
 {
struct tftphdr  *dp, *ap; /* data and ack packets */
-   struct sockaddr_in   from;
+   struct sockaddr_storage  from;
+   struct sockaddr_storage peer;
struct pollfdpfd[1];
unsigned longamount;
socklen_tfromlen;
@@ -138,6 +139,7 @@
convert = !strcmp(mode, "netascii");
block = 0;
amount = 0;
+   memcpy(&peer, &peeraddr, peeraddr.ss_len);
 
do {
/* read data from file */
@@ -146,7 +148,7 @@
else {
size = readit(file, &dp, convert, segment_size);
if (size < 0) {
-   nak(errno + 100);
+   nak(errno + 100, (struct sockaddr *)&peer);
break;
}
dp->th_opcode = htons((u_short)DATA);
@@ -164,8 +166,8 @@
if (trace)
tpacket("sent", dp, size + 4);
if (sendto(f, dp, size + 4, 0,
-   (struct sockaddr *)&peeraddr,
-   sizeof(peeraddr)) != size + 4) {
+   (struct sockaddr *)&peer,
+   peer.ss_len) != size + 4) {
warn("sendto");
goto abort;
}
@@ -202,7 +204,19 @@
warn("recvfrom");
goto abort;
}
-   peeraddr.sin_port = from.sin_port;  /* added */
+   switch (peer.ss_family) {   /* added */
+   case AF_INET:
+   ((struct sockaddr_in *)&peer)->sin_port =
+   ((struct sockaddr_in *)&from)->sin_port;
+   break;
+   case AF_INET6:
+   ((struct sockaddr_in6 *)&peer)->sin6_port =
+   ((struct sockaddr_in6 *)&from)->sin6_port;
+   break;
+   default:
+   /* unsupported */
+   break;
+   }
if (trace)
tpacket("received", ap, n);
 
@@ -256,7 +270,8 @@
 recvfile(int fd, char *name, char *mode)
 {
struct tftphdr  *dp, *ap; /* data and ack packets */
-   struct sockaddr_in   from;
+   struct sockaddr_storage  from;
+   struct sockaddr_storage peer;
struct pollfdpfd[1];
unsigned longamount;
socklen_tfromlen;
@@ -273,6 +288,7 @@
block = 1;
amount = 0;
firsttrip = 1;
+   memcpy(&peer, &peeraddr, peeraddr.ss_len);
 
 options:
do {
@@ -298,8 +314,8 @@
  

ipv6 support for tftp

2010-09-08 Thread Gleydson Soares
hi,

- ipv6 support for tftp client.

based on an old itojun's diff.

[demime 1.01d removed an attachment of type text/x-diff]



update bind/root.hint

2010-06-18 Thread Gleydson Soares
hi,

sync root.hint with ftp.internic.net.

- ipv6 address for i-root added
- remove extra spaces in k-root and l-root
Index: root.hint
===
RCS file: /cvs/src/etc/bind/root.hint,v
retrieving revision 1.7
diff -u root.hint
--- root.hint   29 Dec 2009 08:14:00 -  1.7
+++ root.hint   18 Jun 2010 13:04:07 -
@@ -11,8 +11,8 @@
 ;   on server   FTP.INTERNIC.NET
 ;   -OR-RS.INTERNIC.NET
 ;
-;   last update:Dec 12, 2008
-;   related version of root zone:   2008121200
+;   last update:Jun 17, 2010
+;   related version of root zone:   2010061700
 ;
 ; formerly NS.INTERNIC.NET
 ;
@@ -61,6 +61,7 @@
 ;
 .360  NSI.ROOT-SERVERS.NET.
 I.ROOT-SERVERS.NET.  360  A 192.36.148.17
+I.ROOT-SERVERS.NET.  360    2001:7FE::53
 ;
 ; operated by VeriSign, Inc.
 ;
@@ -71,14 +72,14 @@
 ; operated by RIPE NCC
 ;
 .360  NSK.ROOT-SERVERS.NET.
-K.ROOT-SERVERS.NET.  360  A 193.0.14.129 
+K.ROOT-SERVERS.NET.  360  A 193.0.14.129
 K.ROOT-SERVERS.NET.  360    2001:7fd::1
 ;
 ; operated by ICANN
 ;
 .360  NSL.ROOT-SERVERS.NET.
 L.ROOT-SERVERS.NET.  360  A 199.7.83.42
-L.ROOT-SERVERS.NET.  360    2001:500:3::42   
+L.ROOT-SERVERS.NET.  360    2001:500:3::42
 ;
 ; operated by WIDE
 ;



Re: libexec/tftp-proxy: should to call endpwent()

2010-06-02 Thread Gleydson Soares
sure
but make sense to remove bad examples in tree

On Wed, Jun 02, 2010 at 08:33:10AM -0600, Theo de Raadt wrote:
> > endpwent() here to close file descriptor opened by getpwnam(),
> > since that all work with the password database was done.
> 
> But no file descriptor is open.
> 
> setpassent() was never called to keep the fd open.
> 
> It's even explained in the manual page.
> 
> > Index: tftp-proxy.c
> > ===
> > RCS file: /cvs/src//libexec/tftp-proxy/tftp-proxy.c,v
> > retrieving revision 1.6
> > diff -u tftp-proxy.c
> > --- tftp-proxy.c13 Apr 2008 00:22:17 -  1.6
> > +++ tftp-proxy.c2 Jun 2010 13:06:16 -
> > @@ -128,6 +128,7 @@
> > syslog(LOG_ERR, "can't revoke privs: %m");
> > exit(1);
> > }
> > +   endpwent();
> >  
> > /* non-blocking io */
> > if (ioctl(fd, FIONBIO, &on) < 0) {
Index: privsep.c
===
RCS file: /cvs/src//usr.sbin/tcpdump/privsep.c,v
retrieving revision 1.28
diff -u privsep.c
--- privsep.c   17 Apr 2009 22:31:24 -  1.28
+++ privsep.c   2 Jun 2010 15:18:00 -
@@ -175,7 +175,6 @@
err(1, "setresgid() failed");
if (setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) == -1)
err(1, "setresuid() failed");
-   endpwent();
 
close(socks[0]);
priv_fd = socks[1];
Index: privsep.c
===
RCS file: /cvs/src//usr.sbin/syslogd/privsep.c,v
retrieving revision 1.34
diff -u privsep.c
--- privsep.c   23 Nov 2008 04:29:42 -  1.34
+++ privsep.c   2 Jun 2010 15:18:56 -
@@ -435,7 +435,6 @@
setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) == -1 ||
setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) == -1)
err(1, "failure dropping privs");
-   endpwent();
 
if (dup2(fd[0], STDIN_FILENO) == -1)
err(1, "dup2 failed");



libexec/tftp-proxy: should to call endpwent()

2010-06-02 Thread Gleydson Soares
endpwent() here to close file descriptor opened by getpwnam(), since that all 
work with the password database was done.
Index: tftp-proxy.c
===
RCS file: /cvs/src//libexec/tftp-proxy/tftp-proxy.c,v
retrieving revision 1.6
diff -u tftp-proxy.c
--- tftp-proxy.c13 Apr 2008 00:22:17 -  1.6
+++ tftp-proxy.c2 Jun 2010 13:06:16 -
@@ -128,6 +128,7 @@
syslog(LOG_ERR, "can't revoke privs: %m");
exit(1);
}
+   endpwent();
 
/* non-blocking io */
if (ioctl(fd, FIONBIO, &on) < 0) {



Re: which ISO for a VM?

2010-04-06 Thread Gleydson Soares
On Mon, Apr 5, 2010 at 11:38 AM, Sean Kennedy 
wrote:
> I concur,  it was a Valid question on running OpenBSD in a VM.

really, i was very radical in the last email. really. shut it up and
hack. maybe starting helping the virtualbox guys to close the related
bug at  http://www.virtualbox.org/ticket/639. i think, it hasn't been
fixed.



Re: which ISO for a VM?

2010-04-03 Thread Gleydson Soares
virtualize your brain. it is nice.

On Fri, Apr 2, 2010 at 6:23 AM, Zachary Uram  wrote:
> I have never run OpenBSD before and want to try it out. Wondering if
> there is an ISO I can run in VirtualBox? If not what is the
> recommended method for users who wish to run OpenBSD in
> virtualization?
>
> Regards,
> Zach
>
> <>< http://www.fidei.org ><>



Re: if_loop

2010-01-08 Thread Gleydson Soares
On Fri, Jan 8, 2010 at 9:15 PM, Claudio Jeker 
wrote:
> > On Fri, Jan 08, 2010 at 01:06:03AM -0300, Gleydson Soares wrote:
> >> i guess that if ifp might be bpf attached in loop_clone_create() it
should be detached case destroyed.
> >> Index: if_loop.c
> >> ===
> >> RCS file: /cvs/src/sys/net/if_loop.c,v
> >> retrieving revision 1.44
> >> diff -N -u if_loop.c
> >> --- if_loop.c 7 May 2008 12:58:54 -   1.44
> >> +++ if_loop.c 8 Jan 2010 03:34:17 -
> >> @@ -221,6 +221,9 @@
> >>   if (ifp == lo0ifp)
> >>   return (EPERM);
> >>
> >> +#if NBPFILTER > 0
> >> + bpfdetach(ifp);
> >> +#endif
> >>   if_detach(ifp);
> >>
> >>   free(ifp, M_DEVBUF);
> >>
> >
> > bpfdetach() is called in if_detach(). So there is no need for this diff.
> >
> > --
> > :wq Claudio

sure. my eyes slipped in if.c



if_loop

2010-01-07 Thread Gleydson Soares
i guess that if ifp might be bpf attached in loop_clone_create() it should be 
detached case destroyed.
Index: if_loop.c
===
RCS file: /cvs/src/sys/net/if_loop.c,v
retrieving revision 1.44
diff -N -u if_loop.c
--- if_loop.c   7 May 2008 12:58:54 -   1.44
+++ if_loop.c   8 Jan 2010 03:34:17 -
@@ -221,6 +221,9 @@
if (ifp == lo0ifp)
return (EPERM);
 
+#if NBPFILTER > 0
+   bpfdetach(ifp);
+#endif
if_detach(ifp);
 
free(ifp, M_DEVBUF);



Re: kernel hacking

2009-12-10 Thread Gleydson Soares
/usr/src/*

On Thu, Dec 10, 2009 at 2:24 PM, Robert Yuri  wrote:
> which the best way to learn about OpenBSD kernel ?
> I found a bunch of docs from FreeBSD site such as developer's handbook at
> http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/ ,
> there any same that for openbsd ?
>
> thanks,
> ry