Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 764 of 808  Not logged in ELOG logo
icon4.gif   elog sprintf() buffer overflows on ubuntu-22, posted by Konstantin Olchanski on Wed May 15 01:07:12 2024 
I get the following compiler warnings about sprintf() buffer overflows. I suggest sprintf() should be replaced by std::string msprintf() from 
midas. K.O.

iris00:~/packages> git clone https://bitbucket.org/ritt/elog --recursive
Cloning into 'elog'...
remote: Enumerating objects: 18297, done.
remote: Counting objects: 100% (18297/18297), done.
remote: Compressing objects: 100% (7710/7710), done.
remote: Total 18297 (delta 11462), reused 16637 (delta 10243), pack-reused 0 (from 0)
Receiving objects: 100% (18297/18297), 14.56 MiB | 17.14 MiB/s, done.
Resolving deltas: 100% (11462/11462), done.
Submodule 'mxml' (https://bitbucket.org/tmidas/mxml) registered for path 'mxml'
Cloning into '/home/iris/packages/elog/mxml'...
remote: Enumerating objects: 356, done.        
remote: Counting objects: 100% (356/356), done.        
remote: Compressing objects: 100% (242/242), done.        
remote: Total 356 (delta 162), reused 265 (delta 112), pack-reused 0 (from 0)        
Receiving objects: 100% (356/356), 85.65 KiB | 10.71 MiB/s, done.
Resolving deltas: 100% (162/162), done.
Submodule path 'mxml': checked out '4d4b4cf17bec323a76b8a87605efec6a4822bebf'
iris00:~/packages> cd elo
elog/      elog-2012/ 
iris00:~/packages> cd elog
iris00:~/packages/elog> make
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -c -o mxml.o mxml/mxml.cxx
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -w -c -o crypt.o 
src/crypt.cxx
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -c -o strlcpy.o 
mxml/strlcpy.cxx
type git &> /dev/null; if [ $? -eq 1 ]; then REV="unknown" ;else REV=`git log -n 1 --pretty=format:"%ad - %h"`; fi; echo \#define GIT_REVISION 
\"$REV\" > src/git-revision.h
git is /bin/git
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -o elog src/elog.cxx 
mxml.o crypt.o strlcpy.o -lssl
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -w -c -o auth.o 
src/auth.cxx
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -o elogd src/elogd.cxx 
auth.o mxml.o crypt.o strlcpy.o -lssl
src/elogd.cxx: In function ‘int el_submit(LOGBOOK*, int, BOOL, const char*, char (*)[1500], char (*)[1500], int, const char*, const char*, const 
char*, const char*, const char (*)[256], BOOL, const char*, const char*)’:
src/elogd.cxx:4960:47: warning: ‘%s’ directive writing up to 149999 bytes into a region of size between 100103 and 250102 [-Wformat-overflow=]
 4960 |       sprintf(message + strlen(message), "%s: %s\n", attr_name[i], attrib[i]);
      |                                               ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 4 and 300002 bytes into a destination of size 
250104
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx: In function ‘void show_edit_form(LOGBOOK*, int, BOOL, BOOL, BOOL, BOOL, BOOL, BOOL)’:
src/elogd.cxx:9659:28: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3993 [-Wformat-overflow=]
 9659 |       sprintf(str, "Preset %s", attr_list[index]);
      |                            ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 8 and 150007 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9680:43: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3978 [-Wformat-overflow=]
 9680 |       sprintf(str, "Preset on first reply %s", attr_list[index]);
      |                                           ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 23 and 150022 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9701:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9701 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 17 and 150016 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9701:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9701 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 17 and 150016 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9701:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9701 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 17 and 150016 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9701:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9701 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 17 and 150016 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9721:36: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3985 [-Wformat-overflow=]
 9721 |       sprintf(str, "Preset on edit %s", attr_list[index]);
      |                                    ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 16 and 150015 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9741:41: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3980 [-Wformat-overflow=]
 9741 |       sprintf(str, "Preset on duplicate %s", attr_list[index]);
      |                                         ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 21 and 150020 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9762:22: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3999 [-Wformat-overflow=]
 9762 |       sprintf(str, "p%s", attr_list[index]);
      |                      ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 2 and 150001 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9780:31: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3993 [-Wformat-overflow=]
 9780 |          sprintf(str, "Preset %s", attr_list[index]);
      |                               ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 8 and 150007 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9801:40: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9801 |          sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                        ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 17 and 150016 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:9821:44: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3980 [-Wformat-overflow=]
 9821 |          sprintf(str, "Preset on duplicate %s", attr_list[index]);
      |                                            ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 21 and 150020 bytes into a destination of size 
4000
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx: In function ‘void show_elog_list(LOGBOOK*, int, int, int, BOOL, char*)’:
src/elogd.cxx:20448:43: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1587 [-Wformat-overflow=]
20448 |                sprintf(str, "Icon comment %s", attrib[i]);
      |                                           ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 14 and 150013 bytes into a destination of size 
1600
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:20495:33: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1600 [-Wformat-overflow=]
20495 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                 ^~
src/elogd.cxx:20495:32: note: directive argument in the range [0, 99]
20495 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                ^~~~~~~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 3 and 150003 bytes into a destination of size 
1600
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:20459:33: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1600 [-Wformat-overflow=]
20459 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                 ^~
src/elogd.cxx:20459:32: note: directive argument in the range [0, 99]
20459 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                ^~~~~~~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 3 and 150003 bytes into a destination of size 
1600
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:21041:30: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1600 [-Wformat-overflow=]
21041 |                sprintf(str, "%s_%d", attr_list[i], j);
      |                              ^~
src/elogd.cxx:21041:29: note: directive argument in the range [0, 99]
21041 |                sprintf(str, "%s_%d", attr_list[i], j);
      |                             ^~~~~~~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 3 and 150003 bytes into a destination of size 
1600
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:21527:45: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1588 [-Wformat-overflow=]
21527 |                   sprintf(str, "Time format %s", attr_list[i]);
      |                                             ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 13 and 150012 bytes into a destination of size 
1600
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx:21512:45: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1588 [-Wformat-overflow=]
21512 |                   sprintf(str, "Date format %s", attr_list[i]);
      |                                             ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 13 and 150012 bytes into a destination of size 
1600
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
src/elogd.cxx: In function ‘void submit_elog(LOGBOOK*)’:
src/elogd.cxx:23282:38: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 2034 [-Wformat-overflow=]
23282 |          sprintf(str, "Subst on edit %s", attr_list[index]);
      |                                      ^~
In file included from /usr/include/stdio.h:894,
                 from src/elogd.h:42,
                 from src/elogd.cxx:38:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 15 and 150014 bytes into a destination of size 
2048
   38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   39 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -o elconv src/elconv.cxx -
lssl
iris00:~/packages/elog> git log
commit 2eba8869bb72561f3f19f9b675ec74ba738f2443 (HEAD -> master, origin/master, origin/HEAD)
Author: Stefan Ritt <stefan.ritt@psi.ch>
Date:   Fri May 3 16:04:21 2024 +0200

    Removed unused variables

commit 8f942d1d18cc7d4d9b12f049dfd67284e3289963
Author: Stefan Ritt <stefan.ritt@psi.ch>
Date:   Fri May 3 15:50:17 2024 +0200

    Disabled attachment file retrieval to prevent poxy mis-use

commit 3020557a2b52cc9c460b80313c7c61c3ee014896
Author: Stefan Ritt <stefan.ritt@psi.ch>
Date:   Tue Apr 16 13:29:35 2024 +0200

    Fixed typos

commit 3876ffa2cc22a355cad8da642cb6f5a35884597a
Author: Stefan Ritt <stefan.ritt@psi.ch>
Date:   Mon Apr 15 18:04:52 2024 +0200

    Fixed line break

commit a644db7f2c14210e8014dc2a3dc9960e1382ccc1
Author: Stefan Ritt <stefan.ritt@psi.ch>
Date:   Mon Apr 15 18:00:54 2024 +0200

    Updated MacOSX command

commit fe60aaf0c41dcfafa50042e415f576faf82b1d4b
Author: Stefan Ritt <stefan.ritt@psi.ch>
Date:   Thu Mar 14 21:17:01 2024 +0100

    Fixed wrong number of attachments display

Broken pipe
iris00:~/packages/elog> 
icon5.gif   broken http response when deployed on OpenShift, posted by Enrico Gamberini on Wed Jul 10 17:43:07 2024 

Hello!

We're setting up ELOG on OpenShift. ELOG is installed on a Alma Linux 9 image. The container and the elog demo works fine executing the docker image locally.

When deployed on OpenShift, we get a weird response, that results in a 502 Bad Gateway. The broken response looks like:
 

# curl -v -H 'X-Forwarded-User: enrico.gamberini@cern.ch' https://psi-elog-container2-elisa-epdtdi.app.cern.ch/demo/

<html>redir</html>
HTTP/1.1 200 Document follows
HTTP/1.1 200 Document follows
Server: ELOG HTTP 3.1.5-23df00d
Content-Type: text/html;charset=ISO-8859-1
Set-Cookie: elmode=Summary; path=/demo; expires=Friday, 07-Dec-35 06:30:26 GMT;
Pragma: no-cache
Cache-control: private, max-age=0, no-cache, no-store

 

Notice the HTML tag before the HTTP header, as well the duplicate HTTP header.

I understand that it might be difficult to reproduce, but any input would be very welcome!

Thanks!

Best,
Enrico

    icon2.gif   Re: broken http response when deployed on OpenShift, posted by Enrico Gamberini on Thu Jul 11 15:25:19 2024 

Sorry for posting again but something else came up.

Actually, building from source (elog-3.1.5-1.tar.gz) works just fine on OpenShift too.

The problem described below only happens when installing the packaged binary elog-3.1.5-20240226.el9.x86_64.rpm.

Best,
Enrico

Enrico Gamberini wrote:

Hello!

We're setting up ELOG on OpenShift. ELOG is installed on a Alma Linux 9 image. The container and the elog demo works fine executing the docker image locally.

When deployed on OpenShift, we get a weird response, that results in a 502 Bad Gateway. The broken response looks like:
 

# curl -v -H 'X-Forwarded-User: enrico.gamberini@cern.ch' https://psi-elog-container2-elisa-epdtdi.app.cern.ch/demo/

<html>redir</html>
HTTP/1.1 200 Document follows
HTTP/1.1 200 Document follows
Server: ELOG HTTP 3.1.5-23df00d
Content-Type: text/html;charset=ISO-8859-1
Set-Cookie: elmode=Summary; path=/demo; expires=Friday, 07-Dec-35 06:30:26 GMT;
Pragma: no-cache
Cache-control: private, max-age=0, no-cache, no-store

 

Notice the HTML tag before the HTTP header, as well the duplicate HTTP header.

I understand that it might be difficult to reproduce, but any input would be very welcome!

Thanks!

Best,
Enrico

 

    icon2.gif   Re: broken http response when deployed on OpenShift, posted by Laurent Jean-Rigaud on Thu Jul 11 19:15:39 2024 

Hey Enrico,

Do you activate also all options with your build ? (pam/ldap/kb5/ssl)

Can you compare ldd command results on elogd binaries builded by yourself and the one from RPM ?

$ ldd /path/to/elogd

Also, size of both elogd files.

Regards

 

Enrico Gamberini wrote:

Sorry for posting again but something else came up.

Actually, building from source (elog-3.1.5-1.tar.gz) works just fine on OpenShift too.

The problem described below only happens when installing the packaged binary elog-3.1.5-20240226.el9.x86_64.rpm.

Best,
Enrico

Enrico Gamberini wrote:

Hello!

We're setting up ELOG on OpenShift. ELOG is installed on a Alma Linux 9 image. The container and the elog demo works fine executing the docker image locally.

When deployed on OpenShift, we get a weird response, that results in a 502 Bad Gateway. The broken response looks like:
 

# curl -v -H 'X-Forwarded-User: enrico.gamberini@cern.ch' https://psi-elog-container2-elisa-epdtdi.app.cern.ch/demo/

<html>redir</html>
HTTP/1.1 200 Document follows
HTTP/1.1 200 Document follows
Server: ELOG HTTP 3.1.5-23df00d
Content-Type: text/html;charset=ISO-8859-1
Set-Cookie: elmode=Summary; path=/demo; expires=Friday, 07-Dec-35 06:30:26 GMT;
Pragma: no-cache
Cache-control: private, max-age=0, no-cache, no-store

 

Notice the HTML tag before the HTTP header, as well the duplicate HTTP header.

I understand that it might be difficult to reproduce, but any input would be very welcome!

Thanks!

Best,
Enrico

 

 

    icon2.gif   Re: broken http response when deployed on OpenShift, posted by Enrico Gamberini on Mon Jul 15 09:45:56 2024 

Hi Laurent,

Thanks, good point! I'm building a vanilla version (no extra options enabled as I'm using Webserver authentication).

3.15 RPM:

-rwxr-xr-x. 1 elog elog 1574768 Feb 26 17:29 elogd

bash-5.1$ ldd /usr/local/sbin/elogd 
    linux-vdso.so.1 (0x00007fff215f7000)
    libssl.so.3 => /lib64/libssl.so.3 (0x00007feff74c6000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007feff73eb000)
    libldap.so.2 => /lib64/libldap.so.2 (0x00007feff7384000)
    liblber.so.2 => /lib64/liblber.so.2 (0x00007feff7372000)
    libpam.so.0 => /lib64/libpam.so.0 (0x00007feff7360000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007feff7139000)
    libm.so.6 => /lib64/libm.so.6 (0x00007feff705c000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007feff7041000)
    libc.so.6 => /lib64/libc.so.6 (0x00007feff6e38000)
    libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007feff6a07000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007feff69ee000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007feff69e7000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007feff69d4000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007feff69cd000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007feff69b9000)
    libevent-2.1.so.7 => /lib64/libevent-2.1.so.7 (0x00007feff6960000)
    libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007feff6940000)
    libaudit.so.1 => /lib64/libaudit.so.1 (0x00007feff6912000)
    libeconf.so.0 => /lib64/libeconf.so.0 (0x00007feff6905000)
    /lib64/ld-linux-x86-64.so.2 (0x00007feff7572000)
    libz.so.1 => /lib64/libz.so.1 (0x00007feff68eb000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007feff68be000)
    libcrypt.so.2 => /lib64/libcrypt.so.2 (0x00007feff6884000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007feff682d000)
    libcap-ng.so.0 => /lib64/libcap-ng.so.0 (0x00007feff6822000)
    libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007feff6786000)

    
3.15 source vanilla build:

-rwxr-xr-x. 1 root root 1503896 Jul 15 09:31 elogd

bash-5.1$ ldd elogd
    linux-vdso.so.1 (0x00007fff60bbf000)
    libssl.so.3 => /lib64/libssl.so.3 (0x00007f8f83e44000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f8f83c1b000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f8f83b40000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f8f83b25000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f8f8391c000)
    libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f8f834e9000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f8f83ef0000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f8f834cd000)

Best,
Enrico

Laurent Jean-Rigaud wrote:

Hey Enrico,

Do you activate also all options with your build ? (pam/ldap/kb5/ssl)

Can you compare ldd command results on elogd binaries builded by yourself and the one from RPM ?

$ ldd /path/to/elogd

Also, size of both elogd files.

Regards

 

Enrico Gamberini wrote:

Sorry for posting again but something else came up.

Actually, building from source (elog-3.1.5-1.tar.gz) works just fine on OpenShift too.

The problem described below only happens when installing the packaged binary elog-3.1.5-20240226.el9.x86_64.rpm.

Best,
Enrico

Enrico Gamberini wrote:

Hello!

We're setting up ELOG on OpenShift. ELOG is installed on a Alma Linux 9 image. The container and the elog demo works fine executing the docker image locally.

When deployed on OpenShift, we get a weird response, that results in a 502 Bad Gateway. The broken response looks like:
 

# curl -v -H 'X-Forwarded-User: enrico.gamberini@cern.ch' https://psi-elog-container2-elisa-epdtdi.app.cern.ch/demo/

<html>redir</html>
HTTP/1.1 200 Document follows
HTTP/1.1 200 Document follows
Server: ELOG HTTP 3.1.5-23df00d
Content-Type: text/html;charset=ISO-8859-1
Set-Cookie: elmode=Summary; path=/demo; expires=Friday, 07-Dec-35 06:30:26 GMT;
Pragma: no-cache
Cache-control: private, max-age=0, no-cache, no-store

 

Notice the HTML tag before the HTTP header, as well the duplicate HTTP header.

I understand that it might be difficult to reproduce, but any input would be very welcome!

Thanks!

Best,
Enrico

 

 

 

    icon2.gif   Re: broken http response when deployed on OpenShift, posted by Laurent Jean-Rigaud on Tue Jul 16 00:15:12 2024 

Enrico,

When using RPM in OpenShift, I guess all the RPM dependencies are correctly installed.

FYI, I met a problem with elogd docker built with alpine Linux image and running on Synology NAS (x86_64). The ImageMagick dependencies libs provided by alpine for X86_64 are optimized for better CPU than mine with AVX2 (or something like that), and elogd failed to save a log with any enclosure (core exit, bad instruction), as some thumbnails are generated while saving.

As I didn't find any easy workaround w/o rebuilding all IM libs, so I switch to Debian images more conservative in CPU optimization, but bigger :-( before to switch to minideb that's run fine in my case.

It's not easy to debug in container w/o making one specially for that, so you should try to build a docker based on alma9 image, compiling elogd from sources (you can follow https://github.com/loll31/elog-ldap for the process).

Good luck

 

NB : The ldd result from my minideb Docker :

root@9ac6063e87bf:/# ldd -v /usr/local/sbin/elogd                                                                                                        
        linux-vdso.so.1 (0x00007ffd0e794000)                                                                                                             
        libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007fc00ac35000)                                                                            
        libldap-2.5.so.0 => /lib/x86_64-linux-gnu/libldap-2.5.so.0 (0x00007fc00abd6000)                                                                  
        liblber-2.5.so.0 => /lib/x86_64-linux-gnu/liblber-2.5.so.0 (0x00007fc00abc6000)                                                                  
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc00a9ac000)                                                                      
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc00a98c000)                                                                        
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc00a7a9000)                                                                                
        libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007fc00a328000)                                                                      
        libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fc00a30b000)                                                                        
        libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fc00a0ef000)                                                                    
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc00a010000)                                                                                
        /lib64/ld-linux-x86-64.so.2 (0x00007fc00f959000)                                                                                                 
        libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fc009eda000)                                                                    
        libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007fc009ea9000)                                                                          
        libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007fc009cf3000)                                                                
        libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fc009cde000)                                                                        
        libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007fc009c90000)                                                                      
        libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007fc009c47000)                                                                    
        libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fc009bc4000)                                                                          
        libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007fc009bb8000)                                  

 

 

Enrico Gamberini wrote:

Hi Laurent,

Thanks, good point! I'm building a vanilla version (no extra options enabled as I'm using Webserver authentication).

3.15 RPM:

-rwxr-xr-x. 1 elog elog 1574768 Feb 26 17:29 elogd

bash-5.1$ ldd /usr/local/sbin/elogd 
    linux-vdso.so.1 (0x00007fff215f7000)
    libssl.so.3 => /lib64/libssl.so.3 (0x00007feff74c6000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007feff73eb000)
    libldap.so.2 => /lib64/libldap.so.2 (0x00007feff7384000)
    liblber.so.2 => /lib64/liblber.so.2 (0x00007feff7372000)
    libpam.so.0 => /lib64/libpam.so.0 (0x00007feff7360000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007feff7139000)
    libm.so.6 => /lib64/libm.so.6 (0x00007feff705c000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007feff7041000)
    libc.so.6 => /lib64/libc.so.6 (0x00007feff6e38000)
    libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007feff6a07000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007feff69ee000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007feff69e7000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007feff69d4000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007feff69cd000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007feff69b9000)
    libevent-2.1.so.7 => /lib64/libevent-2.1.so.7 (0x00007feff6960000)
    libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007feff6940000)
    libaudit.so.1 => /lib64/libaudit.so.1 (0x00007feff6912000)
    libeconf.so.0 => /lib64/libeconf.so.0 (0x00007feff6905000)
    /lib64/ld-linux-x86-64.so.2 (0x00007feff7572000)
    libz.so.1 => /lib64/libz.so.1 (0x00007feff68eb000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007feff68be000)
    libcrypt.so.2 => /lib64/libcrypt.so.2 (0x00007feff6884000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007feff682d000)
    libcap-ng.so.0 => /lib64/libcap-ng.so.0 (0x00007feff6822000)
    libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007feff6786000)

    
3.15 source vanilla build:

-rwxr-xr-x. 1 root root 1503896 Jul 15 09:31 elogd

bash-5.1$ ldd elogd
    linux-vdso.so.1 (0x00007fff60bbf000)
    libssl.so.3 => /lib64/libssl.so.3 (0x00007f8f83e44000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f8f83c1b000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f8f83b40000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f8f83b25000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f8f8391c000)
    libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f8f834e9000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f8f83ef0000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f8f834cd000)

Best,
Enrico

Laurent Jean-Rigaud wrote:

Hey Enrico,

Do you activate also all options with your build ? (pam/ldap/kb5/ssl)

Can you compare ldd command results on elogd binaries builded by yourself and the one from RPM ?

$ ldd /path/to/elogd

Also, size of both elogd files.

Regards

 

Enrico Gamberini wrote:

Sorry for posting again but something else came up.

Actually, building from source (elog-3.1.5-1.tar.gz) works just fine on OpenShift too.

The problem described below only happens when installing the packaged binary elog-3.1.5-20240226.el9.x86_64.rpm.

Best,
Enrico

Enrico Gamberini wrote:

Hello!

We're setting up ELOG on OpenShift. ELOG is installed on a Alma Linux 9 image. The container and the elog demo works fine executing the docker image locally.

When deployed on OpenShift, we get a weird response, that results in a 502 Bad Gateway. The broken response looks like:
 

# curl -v -H 'X-Forwarded-User: enrico.gamberini@cern.ch' https://psi-elog-container2-elisa-epdtdi.app.cern.ch/demo/

<html>redir</html>
HTTP/1.1 200 Document follows
HTTP/1.1 200 Document follows
Server: ELOG HTTP 3.1.5-23df00d
Content-Type: text/html;charset=ISO-8859-1
Set-Cookie: elmode=Summary; path=/demo; expires=Friday, 07-Dec-35 06:30:26 GMT;
Pragma: no-cache
Cache-control: private, max-age=0, no-cache, no-store

 

Notice the HTML tag before the HTTP header, as well the duplicate HTTP header.

I understand that it might be difficult to reproduce, but any input would be very welcome!

Thanks!

Best,
Enrico

 

 

 

 

    icon2.gif   Re: broken http response when deployed on OpenShift, posted by Laurent Jean-Rigaud on Tue Jul 16 00:45:08 2024 

Also, you have the option to rebuild RPM from SRPMS or SOURCES via ELOG buildrpm script.

You will need to install rpmbuild tools...

Options (ldap, kb5, etc) can be set from options or by editing defaults.

 

 

Laurent Jean-Rigaud wrote:

Enrico,

When using RPM in OpenShift, I guess all the RPM dependencies are correctly installed.

FYI, I met a problem with elogd docker built with alpine Linux image and running on Synology NAS (x86_64). The ImageMagick dependencies libs provided by alpine for X86_64 are optimized for better CPU than mine with AVX2 (or something like that), and elogd failed to save a log with any enclosure (core exit, bad instruction), as some thumbnails are generated while saving.

As I didn't find any easy workaround w/o rebuilding all IM libs, so I switch to Debian images more conservative in CPU optimization, but bigger :-( before to switch to minideb that's run fine in my case.

It's not easy to debug in container w/o making one specially for that, so you should try to build a docker based on alma9 image, compiling elogd from sources (you can follow https://github.com/loll31/elog-ldap for the process).

Good luck

 

NB : The ldd result from my minideb Docker :

root@9ac6063e87bf:/# ldd -v /usr/local/sbin/elogd                                                                                                        
        linux-vdso.so.1 (0x00007ffd0e794000)                                                                                                             
        libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007fc00ac35000)                                                                            
        libldap-2.5.so.0 => /lib/x86_64-linux-gnu/libldap-2.5.so.0 (0x00007fc00abd6000)                                                                  
        liblber-2.5.so.0 => /lib/x86_64-linux-gnu/liblber-2.5.so.0 (0x00007fc00abc6000)                                                                  
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc00a9ac000)                                                                      
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc00a98c000)                                                                        
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc00a7a9000)                                                                                
        libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007fc00a328000)                                                                      
        libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fc00a30b000)                                                                        
        libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fc00a0ef000)                                                                    
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc00a010000)                                                                                
        /lib64/ld-linux-x86-64.so.2 (0x00007fc00f959000)                                                                                                 
        libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fc009eda000)                                                                    
        libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007fc009ea9000)                                                                          
        libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007fc009cf3000)                                                                
        libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fc009cde000)                                                                        
        libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007fc009c90000)                                                                      
        libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007fc009c47000)                                                                    
        libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fc009bc4000)                                                                          
        libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007fc009bb8000)                                  

 

 

Enrico Gamberini wrote:

Hi Laurent,

Thanks, good point! I'm building a vanilla version (no extra options enabled as I'm using Webserver authentication).

3.15 RPM:

-rwxr-xr-x. 1 elog elog 1574768 Feb 26 17:29 elogd

bash-5.1$ ldd /usr/local/sbin/elogd 
    linux-vdso.so.1 (0x00007fff215f7000)
    libssl.so.3 => /lib64/libssl.so.3 (0x00007feff74c6000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007feff73eb000)
    libldap.so.2 => /lib64/libldap.so.2 (0x00007feff7384000)
    liblber.so.2 => /lib64/liblber.so.2 (0x00007feff7372000)
    libpam.so.0 => /lib64/libpam.so.0 (0x00007feff7360000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007feff7139000)
    libm.so.6 => /lib64/libm.so.6 (0x00007feff705c000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007feff7041000)
    libc.so.6 => /lib64/libc.so.6 (0x00007feff6e38000)
    libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007feff6a07000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007feff69ee000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007feff69e7000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007feff69d4000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007feff69cd000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007feff69b9000)
    libevent-2.1.so.7 => /lib64/libevent-2.1.so.7 (0x00007feff6960000)
    libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007feff6940000)
    libaudit.so.1 => /lib64/libaudit.so.1 (0x00007feff6912000)
    libeconf.so.0 => /lib64/libeconf.so.0 (0x00007feff6905000)
    /lib64/ld-linux-x86-64.so.2 (0x00007feff7572000)
    libz.so.1 => /lib64/libz.so.1 (0x00007feff68eb000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007feff68be000)
    libcrypt.so.2 => /lib64/libcrypt.so.2 (0x00007feff6884000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007feff682d000)
    libcap-ng.so.0 => /lib64/libcap-ng.so.0 (0x00007feff6822000)
    libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007feff6786000)

    
3.15 source vanilla build:

-rwxr-xr-x. 1 root root 1503896 Jul 15 09:31 elogd

bash-5.1$ ldd elogd
    linux-vdso.so.1 (0x00007fff60bbf000)
    libssl.so.3 => /lib64/libssl.so.3 (0x00007f8f83e44000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f8f83c1b000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f8f83b40000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f8f83b25000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f8f8391c000)
    libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f8f834e9000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f8f83ef0000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f8f834cd000)

Best,
Enrico

Laurent Jean-Rigaud wrote:

Hey Enrico,

Do you activate also all options with your build ? (pam/ldap/kb5/ssl)

Can you compare ldd command results on elogd binaries builded by yourself and the one from RPM ?

$ ldd /path/to/elogd

Also, size of both elogd files.

Regards

 

Enrico Gamberini wrote:

Sorry for posting again but something else came up.

Actually, building from source (elog-3.1.5-1.tar.gz) works just fine on OpenShift too.

The problem described below only happens when installing the packaged binary elog-3.1.5-20240226.el9.x86_64.rpm.

Best,
Enrico

Enrico Gamberini wrote:

Hello!

We're setting up ELOG on OpenShift. ELOG is installed on a Alma Linux 9 image. The container and the elog demo works fine executing the docker image locally.

When deployed on OpenShift, we get a weird response, that results in a 502 Bad Gateway. The broken response looks like:
 

# curl -v -H 'X-Forwarded-User: enrico.gamberini@cern.ch' https://psi-elog-container2-elisa-epdtdi.app.cern.ch/demo/

<html>redir</html>
HTTP/1.1 200 Document follows
HTTP/1.1 200 Document follows
Server: ELOG HTTP 3.1.5-23df00d
Content-Type: text/html;charset=ISO-8859-1
Set-Cookie: elmode=Summary; path=/demo; expires=Friday, 07-Dec-35 06:30:26 GMT;
Pragma: no-cache
Cache-control: private, max-age=0, no-cache, no-store

 

Notice the HTML tag before the HTTP header, as well the duplicate HTTP header.

I understand that it might be difficult to reproduce, but any input would be very welcome!

Thanks!

Best,
Enrico

 

 

 

 

 

icon1.gif   HTTP headers should be parsed case insensitive, posted by André on Mon Jul 22 16:17:55 2024 

I'm trying to run elog behind haproxy, but get the error "Invalid Content-Length in header" on posting.

As stated in the manual, haproxy rewrites all headers to lower case.

elogd parses the content-length header case sensitive which is against the HTTP RFC. This might also apply to other headers that get parsed.

For now I'm using the workaround from the manual:

global
  h1-case-adjust content-length Content-Length
  h1-case-adjust content-type Content-Type

backend elog
  option h1-case-adjust-bogus-server
  server elog 127.0.0.1:8080

But as the manual states, this should not be  used as a permanent solution.

ELOG V3.1.5-3fb85fa6