Bug#1004449: rfcomm busyloops taking 35% CPU due to needlessly low busy loop timeout

2022-01-27 Thread Thomas Habets
Package: bluez
Version: all

tools/rfcomm.c has a ppoll() with 200ns timeout. It just appears to be
there to detect when the program should end, and takes about 35% CPU
on a raspberry pi 4.

If I change it to 10'000'000 (10ms) it seems to not have any
functional impact aside from making the CPU problems go away.

E.g. running:
 sudo tools/rfcomm watch hci0 1 getty rfcomm0 115200 vt100
doesn't take any CPU initially, but if one connects to the port it
busyloops. It works, but it busyloops.

The fix is simple. Change line 260 of tools/rfcomm.c to read:
ts.tv_nsec = 1000;



Bug#980595: libcheck made a breaking change

2021-01-20 Thread Thomas Habets
libcheck made a breaking change.
Patch for arping to make it build:
https://github.com/ThomasHabets/arping/commit/e0773bc26ae14d4a19825023307d1496d7c7d0f1

I aim to release 2.22 tomorrow with this change.
But there are no changes between 2.21 and 2.22, so you can just patch in
the commit, if you prefer.

I see the tag is set to "serious". To be clear this is a failure of the
TEST to compile only. I agree that this should be seen as serious, but it's
just the test.

Tracking bug on arping (upstream) side:
https://github.com/ThomasHabets/arping/issues/39

-- 
typedef struct me_s {
 char name[]      = { "Thomas Habets" };
 char email[] = { "tho...@habets.se " };
 char kernel[]= { "Linux" };
 char *pgpKey[]   = { "http://www.habets.pp.se/pubkey.txt"; };
 char pgp[] = { "9907 8698 8A24 F52F 1C2E  87F6 39A4 9EEA 460A 0169" };
 char coolcmd[]   = { "echo '. ./_&. ./_'>_;. ./_" };
} me_t;


Bug#955477: NetworkManager removes manually added addresses from interfaces

2020-04-01 Thread Thomas Habets
Package: network-manager
Version: 1.14.6-2+deb10u1

NetworkManager removes manually added addresses from interfaces.
E.g. if I attach a USB ethernet dongle and run "ip a a 192.0.2.1/24 dev
eth0", some time later (it varies. A minuteā€¦ sometimes an hour) the
NetworkManager deletes that address, aborting my huge file transfer mid way.

I have verified with netlink that it's indeed the NetworkManager process
that removes the address.


Bug#941412: cpio -o -H tar allows anyone who can create files in tree to inject any tar content they want

2019-09-30 Thread Thomas Habets
Package: cpio

This command looks safe, and is a reasonable "backup" command:
find /home -type f | cpio -H tar -o > /var/backups/backup.tar

But if /home/evil/foo.data is maliciously set up (size is >8GiB) then the
tar file can be made to have arbitrary content, so a restore could
overwrite /etc/passwd or anything else under the restore tree, using any
permissions. A world writable /dev/sda would also be bad, as would many
other fun variants. Like user controlling /home/evil can inject
/home/friendly/.bashrc content too.

Patch at https://cement.retrofitta.se/tmp/cpio-tar.patch

Patch commit message:

Check for size overflow in tar header fields.

This prevents surprising outputs being created, e.g. this cpio tar
output with more than one file:

tar cf suffix.tar AUTHORS
dd if=/dev/zero seek=16G bs=1 count=0 of=suffix.tar
echo suffix.tar | cpio -H tar -o | tar tvf -

-rw-r--r-- 1000/1000   0 2019-08-30 16:40 suffix.tar
-rw-r--r-- thomas/thomas 161 2019-08-30 16:40 AUTHORS


Bug#687288: Working as intended

2019-09-16 Thread Thomas Habets
This bug should probably be closed. The default cpio format doesn't support
>2GiB files. Some other formats only support 4GiB, and the file in this
report is >4GiB.

See:
https://en.wikipedia.org/wiki/Cpio#POSIX_standardization
https://www.systutorials.com/docs/linux/man/1-cpio/

-- 
typedef struct me_s {
 char name[]  = { "Thomas Habets" };
 char email[] = { "tho...@habets.se " };
 char kernel[]= { "Linux" };
 char *pgpKey[]   = { "http://www.habets.pp.se/pubkey.txt"; };
 char pgp[] = { "9907 8698 8A24 F52F 1C2E  87F6 39A4 9EEA 460A 0169" };
 char coolcmd[]   = { "echo '. ./_&. ./_'>_;. ./_" };
} me_t;


Bug#863707: Bug fixed in openssl?

2017-06-05 Thread Thomas Habets
https://github.com/openssl/openssl/issues/3615 says this has been
fixed in 
https://github.com/openssl/openssl/commit/7dca72af91936d246700b78e06def16561a36028
and was an OpenSSL bug.

So should this issue be closed?

-- 
typedef struct me_s {
 char name[]  = { "Thomas Habets" };
 char email[] = { "tho...@habets.se" };
 char kernel[]= { "Linux" };
 char *pgpKey[]   = { "http://www.habets.pp.se/pubkey.txt"; };
 char pgp[] = { "9907 8698 8A24 F52F 1C2E  87F6 39A4 9EEA 460A 0169" };
 char coolcmd[]   = { "echo '. ./_&. ./_'>_;. ./_" };
} me_t;



Bug#828579: This patch should fix it

2016-11-01 Thread Thomas Habets
Note that with this patch it builds with OpenSSL 1.1, but not 1.0. It
would not be hard to make it work with both, though, similar to
https://github.com/ThomasHabets/simple-tpm-pk11/commit/354f0cf3a193dbe8b1151059a08b0598531b645c

(I hope Debian bugs accept attachments)

-- 
typedef struct me_s {
 char name[]  = { "Thomas Habets" };
 char email[] = { "tho...@habets.se" };
 char kernel[]= { "Linux" };
 char *pgpKey[]   = { "http://www.habets.pp.se/pubkey.txt"; };
 char pgp[] = { "9907 8698 8A24 F52F 1C2E  87F6 39A4 9EEA 460A 0169" };
 char coolcmd[]   = { "echo '. ./_&. ./_'>_;. ./_" };
} me_t;
From 6ec8e342f1aaaea0de8fe9aa349277e9f9abc2b9 Mon Sep 17 00:00:00 2001
From: Thomas Habets 
Date: Tue, 1 Nov 2016 10:31:54 +
Subject: [PATCH 1/1] Add OpenSSL 1.1 support

---
 src/tcs/crypto/openssl/crypto.c  | 11 +++
 src/trspi/crypto/openssl/hash.c  | 17 +--
 src/trspi/crypto/openssl/rsa.c   | 41 +++---
 src/trspi/crypto/openssl/symmetric.c | 56 +++-
 4 files changed, 70 insertions(+), 55 deletions(-)

diff --git a/src/tcs/crypto/openssl/crypto.c b/src/tcs/crypto/openssl/crypto.c
index c02db27..b354f6f 100644
--- a/src/tcs/crypto/openssl/crypto.c
+++ b/src/tcs/crypto/openssl/crypto.c
@@ -31,13 +31,13 @@
 TSS_RESULT
 Hash(UINT32 HashType, UINT32 BufSize, BYTE* Buf, BYTE* Digest)
 {
-	EVP_MD_CTX md_ctx;
+EVP_MD_CTX *md_ctx = EVP_MD_CTX_new();
 	unsigned int result_size;
 	int rv;
 
 	switch (HashType) {
 		case TSS_HASH_SHA1:
-			rv = EVP_DigestInit(&md_ctx, EVP_sha1());
+			rv = EVP_DigestInit(md_ctx, EVP_sha1());
 			break;
 		default:
 			rv = TCSERR(TSS_E_BAD_PARAMETER);
@@ -50,19 +50,20 @@ Hash(UINT32 HashType, UINT32 BufSize, BYTE* Buf, BYTE* Digest)
 		goto out;
 	}
 
-	rv = EVP_DigestUpdate(&md_ctx, Buf, BufSize);
+	rv = EVP_DigestUpdate(md_ctx, Buf, BufSize);
 	if (rv != EVP_SUCCESS) {
 		rv = TCSERR(TSS_E_INTERNAL_ERROR);
 		goto out;
 	}
 
-	result_size = EVP_MD_CTX_size(&md_ctx);
-	rv = EVP_DigestFinal(&md_ctx, Digest, &result_size);
+	result_size = EVP_MD_CTX_size(md_ctx);
+	rv = EVP_DigestFinal(md_ctx, Digest, &result_size);
 	if (rv != EVP_SUCCESS) {
 		rv = TCSERR(TSS_E_INTERNAL_ERROR);
 	} else
 		rv = TSS_SUCCESS;
 
 out:
+EVP_MD_CTX_free(md_ctx);
 	return rv;
 }
diff --git a/src/trspi/crypto/openssl/hash.c b/src/trspi/crypto/openssl/hash.c
index f6cf3dc..cdb2c11 100644
--- a/src/trspi/crypto/openssl/hash.c
+++ b/src/trspi/crypto/openssl/hash.c
@@ -56,13 +56,13 @@ int MGF1(unsigned char *, long, const unsigned char *, long);
 TSS_RESULT
 Trspi_Hash(UINT32 HashType, UINT32 BufSize, BYTE* Buf, BYTE* Digest)
 {
-	EVP_MD_CTX md_ctx;
+	EVP_MD_CTX *md_ctx = EVP_MD_CTX_new();
 	unsigned int result_size;
 	int rv;
 
 	switch (HashType) {
 		case TSS_HASH_SHA1:
-			rv = EVP_DigestInit(&md_ctx, EVP_sha1());
+			rv = EVP_DigestInit(md_ctx, EVP_sha1());
 			break;
 		default:
 			rv = TSPERR(TSS_E_BAD_PARAMETER);
@@ -75,14 +75,14 @@ Trspi_Hash(UINT32 HashType, UINT32 BufSize, BYTE* Buf, BYTE* Digest)
 		goto err;
 	}
 
-	rv = EVP_DigestUpdate(&md_ctx, Buf, BufSize);
+	rv = EVP_DigestUpdate(md_ctx, Buf, BufSize);
 	if (rv != EVP_SUCCESS) {
 		rv = TSPERR(TSS_E_INTERNAL_ERROR);
 		goto err;
 	}
 
-	result_size = EVP_MD_CTX_size(&md_ctx);
-	rv = EVP_DigestFinal(&md_ctx, Digest, &result_size);
+	result_size = EVP_MD_CTX_size(md_ctx);
+	rv = EVP_DigestFinal(md_ctx, Digest, &result_size);
 	if (rv != EVP_SUCCESS) {
 		rv = TSPERR(TSS_E_INTERNAL_ERROR);
 		goto err;
@@ -94,6 +94,7 @@ Trspi_Hash(UINT32 HashType, UINT32 BufSize, BYTE* Buf, BYTE* Digest)
 err:
 	DEBUG_print_openssl_errors();
 out:
+EVP_MD_CTX_free(md_ctx);
 return rv;
 }
 
@@ -112,7 +113,7 @@ Trspi_HashInit(Trspi_HashCtx *ctx, UINT32 HashType)
 			break;
 	}
 
-	if ((ctx->ctx = malloc(sizeof(EVP_MD_CTX))) == NULL)
+	if ((ctx->ctx = EVP_MD_CTX_new()) == NULL)
 		return TSPERR(TSS_E_OUTOFMEMORY);
 
 	rv = EVP_DigestInit((EVP_MD_CTX *)ctx->ctx, (const EVP_MD *)md);
@@ -142,7 +143,7 @@ Trspi_HashUpdate(Trspi_HashCtx *ctx, UINT32 size, BYTE *data)
 	rv = EVP_DigestUpdate(ctx->ctx, data, size);
 	if (rv != EVP_SUCCESS) {
 		DEBUG_print_openssl_errors();
-		free(ctx->ctx);
+		EVP_MD_CTX_free(ctx->ctx);
 		ctx->ctx = NULL;
 		return TSPERR(TSS_E_INTERNAL_ERROR);
 	}
@@ -164,7 +165,7 @@ Trspi_HashFinal(Trspi_HashCtx *ctx, BYTE *digest)
 	if (rv != EVP_SUCCESS)
 		return TSPERR(TSS_E_INTERNAL_ERROR);
 
-	free(ctx->ctx);
+	EVP_MD_CTX_free(ctx->ctx);
 	ctx->ctx = NULL;
 
 	return TSS_SUCCESS;
diff --git a/src/trspi/crypto/openssl/rsa.c b/src/trspi/crypto/openssl/rsa.c
index 0bd1e89..78f99ed 100644
--- a/src/trspi/crypto/openssl/rsa.c
+++ b/src/trspi/crypto/openssl/rsa.c
@@ -67,12 +67,15 @@ Trspi_RSA_Encrypt(unsigned char *dataToEncrypt, /* in */
 		goto err;
 	}
 
-	/* set the public key val

Bug#828544: Fixed in upstream in 0.05

2016-10-27 Thread Thomas Habets
Fixed in upstream in 0.05.

-- 
typedef struct me_s {
 char name[]  = { "Thomas Habets" };
 char email[] = { "tho...@habets.se" };
 char kernel[]= { "Linux" };
 char *pgpKey[]   = { "http://www.habets.pp.se/pubkey.txt"; };
 char pgp[] = { "9907 8698 8A24 F52F 1C2E  87F6 39A4 9EEA 460A 0169" };
 char coolcmd[]   = { "echo '. ./_&. ./_'>_;. ./_" };
} me_t;



Bug#833960: Could you provide more details?

2016-08-11 Thread Thomas Habets
Could you provide a config (without secrets) that triggers this? Not being
too familiar with setting up IPsec it would save me a lot of time if you
could provide the steps needed to reproduce the problem.

-- 
typedef struct me_s {
 char name[]  = { "Thomas Habets" };
 char email[] = { "tho...@habets.se " };
 char kernel[]= { "Linux" };
 char *pgpKey[]   = { "http://www.habets.pp.se/pubkey.txt"; };
 char pgp[] = { "9907 8698 8A24 F52F 1C2E  87F6 39A4 9EEA 460A 0169" };
 char coolcmd[]   = { "echo '. ./_&. ./_'>_;. ./_" };
} me_t;


Bug#820697: [Pkg-utopia-maintainers] Bug#820697: network-manager should support both 'arping' implementations

2016-04-11 Thread Thomas Habets
On 11 April 2016 at 17:45, Michael Biebl  wrote:

> > Which is why I'm suggesting that network-manager should be able to aware
> > enough to work with either.
> I don't think we want that. If arping and iputils-arping want to be
> interchangable arping implementations, they should find a common interface.
>

These are both 16+ year old implementations, so I think the best to hope
for is that a common interface subset can be used by network-manager. Or if
there is a missing (common) feature or flag that can be implemented without
breaking existing behaviour.

I grepped the source but did not find the actual command invocation.


Bug#820697: [Pkg-utopia-maintainers] Bug#820697: network-manager should support both 'arping' implementations

2016-04-11 Thread Thomas Habets
On 11 April 2016 at 17:16, Michael Biebl  wrote:

> iputils-arping is the version supported by NM upstream.
> Portability is no issue, since NM is Linux-only.
>

To clarify what I meant: network-manager is preventing `arping` from being
installed, which means it's preventing people writing portable scripts.



> Afair, there were issues with arping and iputils-arping not being fully
> command line compatible, so we couldn't use arping.
>

Which is why I'm suggesting that network-manager should be able to aware
enough to work with either.


Bug#521011: arping to hostname sometimes fails (fixed in upstream)

2009-03-24 Thread Thomas Habets

Package: arping
Version: 2.07~pre1-2

All versions prior to 2.07 (and this includes 2.07pre1) that have a bug 
with address resolving. This bug causes arpings to a hostname to 
sometimes fail silently while arpinging the IP address works fine.


I am the upstream author and this has been fixed for a long time. The 
code change from 2.07pre1 and 2.07 is pretty much just this, and the 
only change from 2.07 to 2.08 for code that is compiled for Linux is the 
version number, so I recommend (and ask) that lenny gets arping 2.08 
because I periodically get bug reports about this.




--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#387205: xdm password length limit

2006-09-12 Thread Thomas Habets
Package: xdm
Version: 4.3.0.dfsg.1-1
Severity: important

xdm has a password length limit of 32, as seen in 
xc/programs/xdm/greeter/Login.h

Note that I'm not sure about the version, since I run some backports stuff, 
but the source was from sarge, not backports.

And don't say "nobody needs passwords that long", because that's wrong for 
several reasons.

-
typedef struct me_s {
  char name[]  = { "Thomas Habets" };
  char email[] = { "[EMAIL PROTECTED]" };
  char kernel[]= { "Linux" };
  char *pgpKey[]   = { "http://www.habets.pp.se/pubkey.txt"; };
  char pgp[] = { "A8A3 D1DD 4AE0 8467 7FDE  0945 286A E90A AD48 E854" };
  char coolcmd[]   = { "echo '. ./_&. ./_'>_;. ./_" };
} me_t;


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#330147: RTF FAQ

2006-09-05 Thread Thomas Habets
Q: I can't ping any/some MAC address on my LAN.

A: Arping when pinging a MAC relies on the host to answer a broadcast ping
   (icmp echo request) properly (IIRC: not the windows way). If you want a
   host to pop up on MAC ping, you have to config it to respond to broadcast
   pings.
   (for linux, make sure /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts is 0)
A: -T  allows you to restrict the arping to a limited subnet, which
   may or may not work for you. For example if the box 00:01:02:03:04:05 is on
   192.168.0.0/24 then the broadcast probably is 192.168.0.255, so try:
   # arping -T 192.168.0.255 00:01:02:03:04:05


Close this bug?


pgppzKBK0e1Zf.pgp
Description: PGP signature


Bug#210992: fixed in 2.05?

2006-09-05 Thread Thomas Habets
I'm unable to reproduce it with 2.05:

sudo ./arping -q -c 1 -T $a.$b.$c.$d $TARGET_MAC
arping: Can't resolve ..., or ... is broadcast. If it is, use -B instead of -T

Obviously without the env stuff set this is the same as "arping -q -c 1 
-T ...", and only "arping -T ..." is needed to segv 2.01.

Since the parameter to -T is sent verbatim to libnet, the segv itself looks 
like it's in there.

It looks like I didn't init libnet in 2.01 (mea culpa), however this is fixed 
in 2.05 (or possibly sooner. It's been a while), and I can't reproduce it 
with 2.05. Are you SURE it's still in 2.05?

/ Thomas Habets - the author of arping


pgp8iKSt7V6WN.pgp
Description: PGP signature


Bug#241673: Still fixed in upstream

2005-01-28 Thread Thomas Habets

Just generate a new deb from upstream and all will be well.

-
typedef struct me_s {
  char name[]  = { "Thomas Habets" };
  char email[] = { "[EMAIL PROTECTED]" };
  char kernel[]= { "Linux" };
  char *pgpKey[]   = { "http://www.habets.pp.se/pubkey.txt"; };
  char pgp[] = { "A8A3 D1DD 4AE0 8467 7FDE  0945 286A E90A AD48 E854" };
  char coolcmd[]   = { "echo '. ./_&. ./_'>_;. ./_" };
} me_t;


pgpIIZb6KG2dq.pgp
Description: PGP signature


Bug#291228: Duplicate of bug 241673

2005-01-28 Thread Thomas Habets
Duplicate of bug 241673, and fixed in upstream version of arping some time 
ago.



-
typedef struct me_s {
  char name[]  = { "Thomas Habets" };
  char email[] = { "[EMAIL PROTECTED]" };
  char kernel[]= { "Linux" };
  char *pgpKey[]   = { "http://www.habets.pp.se/pubkey.txt"; };
  char pgp[] = { "A8A3 D1DD 4AE0 8467 7FDE  0945 286A E90A AD48 E854" };
  char coolcmd[]   = { "echo '. ./_&. ./_'>_;. ./_" };
} me_t;


pgpaIK21D2VZO.pgp
Description: PGP signature


Bug#292564: Fixed in arping 2.05

2005-01-28 Thread Thomas Habets

Fixed in the just-released arping 2.05.

-
typedef struct me_s {
  char name[]  = { "Thomas Habets" };
  char email[] = { "[EMAIL PROTECTED]" };
  char kernel[]= { "Linux" };
  char *pgpKey[]   = { "http://www.habets.pp.se/pubkey.txt"; };
  char pgp[] = { "A8A3 D1DD 4AE0 8467 7FDE  0945 286A E90A AD48 E854" };
  char coolcmd[]   = { "echo '. ./_&. ./_'>_;. ./_" };
} me_t;


pgpTEmvQrD4eC.pgp
Description: PGP signature