View Issue Details

IDProjectCategoryView StatusLast Update
0009179GNUnetmessenger servicepublic2024-09-23 15:35
ReporterEric E Assigned Tothejackimonster  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version0.22.0 
Fixed in Version0.22.1 
Summary0009179: gnunet-messenger segfaults on entering empty string at prompt.
DescriptionHi,

I've downloaded (http://ftpmirror.gnu.org/gnunet/gnunet-0.22.0.tar.gz) and compiled gnunet 0.22.0 in a systemd-free OS (Devuan).

I tried to connect to another peer using gnunet-messenger, but no messages appear on either peer but that's not the main problem.

Within the messenger prompt, if you type text and press enter, the input is echoed (as expected I guess).
However, if you press enter at the prompt (without entering any text) it segfaults.

Also I have a suggested feature: for logging purposes, can you add a mask to identifiable fields within the log data to protect users privacy?

Thank you for this vital project.

Cheers,
Eric
Steps To Reproduce
@peer1 $ gnunet-arm -s

@peer1 $ gnunet-core --connection-status
< nothing is shown >

Create a room in messenger:

@peer1 $ gnunet-messenger -e <my-identity> -r testroom
* Welcome to the messenger, '<my-identity>'!
* You try to open a room...
...
* You joined the room.
...

@peer2 joins testroom using the command:
$ gnunet-messenger [-e IDENTITY] -d PEERIDENTITY -r ROOMKEY

@peer1
test
[D -> E][F] > '<my-identity>' says: "test"

<press enter without text>

Segmentation fault
Additional Information$ gnunet-bugreport
    INFO: gnunet-bugreport 0.11.0
    INFO:
    INFO: Please submit the following
    INFO: information with your bug report:
    =========================================
    INFO: OS : Linux
    INFO: OS RELEASE : 6.1.0-25-amd64
    INFO: HARDWARE : x86_64
    INFO: awk : Found
    INFO: gcc : gcc (Debian 12.2.0-14) 12.2.0
    INFO: cc : cc (Debian 12.2.0-14) 12.2.0
    INFO: c++ : c++ (Debian 12.2.0-14) 12.2.0
    INFO: clang :
    INFO: clang++ :
    WARNING: make : Not Found (unexpected result)
    INFO: gmake : 4.3
    INFO: autoconf : 2.71
    INFO: automake : 1.16.5
    INFO: libtool : 2.4.7
    INFO: GNUnet : 0.22.0
fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
    INFO: git commit :
    INFO: libgcrypt : 1.10.1
    INFO: mysql : Not Found
    INFO: pkgconf : 1.8.1
    INFO: pkg-config : 1.8.1
    INFO: glib2 : 2.74.6
    INFO: GTK2 : Not found
    INFO: GTK3 : Not found
    INFO: GTK4 :
    INFO: GMP : libgmp-dev-2:6.2.1+dfsg1-1.1.deb
    INFO: libunistring : libunistring3-dev-1.0-2.deb
    INFO: GNU gettext : 0.21
    INFO: gettext : Found
    INFO: libcurl : 7.88.1
    INFO: libgnurl : Not found
    WARNING: libgnurl or libcurl : Not found
    INFO: libmicrohttpd : 97500
    INFO: GNU GLPK : 5.0
    INFO: GnuTLS : 3.7.9
    =========================================
    INFO: Bug report saved in ./my_gnunet_bugreport.log
TagsNo tags attached.

Activities

thejackimonster

2024-09-22 15:11

developer   ~0023344

Last edited: 2024-09-22 15:12

"[...] identifiable fields within the log data [...]"

What exactly would be an identifiable field? Since usernames are optional, the member id itself is not identifiable and a members public key only gets logged if the service is running in specific debug configuration or when a request to the contact store finds an invalid contact using the wrong key (which should only happen in case of external changes in the contact storage).

Otherwise the logs only contain member ids when referring to a chat room's members and these ids get written to the logs in shortened form typically. The logs also do not contain any identifiable content of any message.

So it would help if you are more specific because I don't understand what you mean.

thejackimonster

2024-09-22 15:24

developer   ~0023345

I could reproduce the issue. It has been caused by some changes in the past, defaulting to put a null pointer into empty text messages when decoding rather than allocating a buffer to only store a terminator character.

Should be fixed with this commit now:
https://git.gnunet.org/gnunet.git/commit/?id=aa4a422792f348e9f8092a70d0f50a3945785176

thejackimonster

2024-09-23 14:25

developer   ~0023350

Following commit should reduce the amount of logging in production quite a bit:
https://git.gnunet.org/gnunet.git/commit/?id=169d290bf5f142cb0fb396d7a3097091733147d5

But please feel free to elaborate which log messages might still be an issue. Otherwise I think the issue here is solved.

thejackimonster

2024-09-23 15:35

developer   ~0023352

I've opened a follow-up issue regarding the privacy concerns because I think the major part of this issue here is resolved. So it makes sense to discuss other details there.
https://bugs.gnunet.org/view.php?id=9212

Issue History

Date Modified Username Field Change
2024-09-10 14:56 Eric E New Issue
2024-09-16 10:19 schanzen Assigned To => thejackimonster
2024-09-16 10:19 schanzen Status new => assigned
2024-09-22 15:11 thejackimonster Note Added: 0023344
2024-09-22 15:12 thejackimonster Note Edited: 0023344
2024-09-22 15:24 thejackimonster Status assigned => confirmed
2024-09-22 15:24 thejackimonster Note Added: 0023345
2024-09-23 14:25 thejackimonster Note Added: 0023350
2024-09-23 15:35 thejackimonster Status confirmed => resolved
2024-09-23 15:35 thejackimonster Resolution open => fixed
2024-09-23 15:35 thejackimonster Fixed in Version => 0.22.1
2024-09-23 15:35 thejackimonster Note Added: 0023352