vlmcsd icon indicating copy to clipboard operation
vlmcsd copied to clipboard

Build (make) fails with the getEpid function?

Open remcodelange opened this issue 2 years ago • 2 comments

The docker compose build fails. Im using this dockerfile:

FROM alpine:latest as builder
WORKDIR /root
RUN apk add --no-cache git make build-base && \
    git clone --branch master --single-branch https://github.com/Wind4/vlmcsd.git && \
    cd vlmcsd/ && \
    make

FROM alpine:latest
WORKDIR /root/
COPY --from=builder /root/vlmcsd/bin/vlmcsd /usr/bin/vlmcsd
EXPOSE 1688/tcp
CMD [ "/usr/bin/vlmcsd", "-D", "-d" ]

Then i get this error with the make command:

kms.c: In function 'getEpid':
kms.c:502:9: warning: dangling pointer 'pid' to 'ePid' may be used [-Wdangling-pointer=]
  502 |         getEpidFromString(baseResponse, pid);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kms.c:473:30: note: 'ePid' declared here
  473 |                         char ePid[PID_BUFFER_SIZE];
      |                              ^~~~
        LD      ../bin/vlmcsd <- vlmcsd.o kmsdata.o crypto.o kms.o endian.o output.o shared_globals.o helpers.o network.o rpc.o crypto_internal.o
        LD      ../bin/vlmcs <- vlmcs.o kmsdata-full.o crypto.o kms.o endian.o output.o shared_globals.o helpers.o network.o rpc.o crypto_internal.o dns_srv.o
gmake[1]: Leaving directory '/root/vlmcsd/src'

Can you guys help me?

remcodelange avatar Apr 22 '24 19:04 remcodelange

This is a bug in the code that needs to be patched.

The problem:

  • char ePid[PID_BUFFER_SIZE]; is declared within a block {}
  • pid is set to point to that memory
  • ePid is lost when the block {} scope ends
  • pid now points to uncertain memory that may be trashed at any moment.
  • This is your "dangling pointer"

Quick fix:

  • Move "char ePid[PID_BUFFER_SIZE];" up a few lines just after "const char* pid;"
  • It will remain in scope and is safe to use.

Zarniwoops avatar May 07 '24 13:05 Zarniwoops

Thank you, I feel like an idiot. Just changed the kms.c file and moved the line 473 to after 467 and now it works again.

remcodelange avatar May 13 '24 18:05 remcodelange