Compare commits

...

3 Commits

Author SHA1 Message Date
Hongcai Deng e108fe4567
Merge a16fde8070 into 82f66af3e2 2026-01-22 10:22:55 +08:00
YuQing 82f66af3e2 base64_decode check dummies count for safety 2026-01-22 09:11:23 +08:00
Hongcai Deng a16fde8070 fix: compile error when build .so using .a
```
src/libfastcommon.a(hash.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC
```

env: Ubuntu 14.04, gcc 4.8
2017-01-29 14:20:18 +08:00
2 changed files with 15 additions and 10 deletions

View File

@ -66,7 +66,7 @@ libfastcommon.a: $(FAST_STATIC_OBJS)
.c:
$(COMPILE) -o $@ $< $(FAST_STATIC_OBJS) $(LIB_PATH) $(INC_PATH)
.c.o:
$(COMPILE) -c -o $@ $< $(INC_PATH)
$(COMPILE) -c -fPIC -o $@ $< $(INC_PATH)
.c.lo:
$(COMPILE) -c -fPIC -o $@ $< $(INC_PATH)
install:

View File

@ -297,9 +297,7 @@ char *base64_decode_auto(struct base64_context *context, const char *src, \
memcpy(pBuff, src, nSrcLen);
memset(pBuff + nSrcLen, context->pad_ch, nPadLen);
base64_decode(context, pBuff, nNewLen, dest, dest_len);
if (pBuff != tmpBuff)
{
free(pBuff);
@ -387,14 +385,21 @@ char *base64_decode(struct base64_context *context, const char *src, \
{
*dest = '\0';
*dest_len = 0;
fprintf(stderr, "Input to decode not an even multiple of " \
fprintf(stderr, "Input to decode not an even multiple of "
"4 characters; pad with %c\n", context->pad_ch);
return dest;
}
if (dummies > 2)
{
*dest = '\0';
*dest_len = 0;
fprintf(stderr, "pad char: %c count %d exceeds 2\n",
context->pad_ch, dummies);
return dest;
}
*dest_len = (pDest - dest) - dummies;
*(dest + (*dest_len)) = '\0';
return dest;
}