pidgin/pidgin

Implement mitigation for GHSL-2021-045
release-2.x.y
2021-02-07, Gary Kramlich
fb2056ce3c58
Implement mitigation for GHSL-2021-045

This add a static inline version of `g_memdup2` if the version of glib we're
compiling against doesn't have the function.

GHSL-2021-045 was originally reported to glib at
https://gitlab.gnome.org/GNOME/glib/-/issues/2319.

More information about the entire situation can be found on the gnome
desktop-devel-list at
https://mail.gnome.org/archives/desktop-devel-list/2021-February/msg00000.html

Testing Done:
Compiled and ran tests locally.

Reviewed at https://reviews.imfreedom.org/r/483/
#
# Makefile.mingw
#
# Description: Makefile for win32 (mingw) version of libsametime
#
PIDGIN_TREE_TOP := ../../..
include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak
TARGET = libsametime
NEEDED_DLLS = $(MEANWHILE_TOP)/bin/libmeanwhile-1.dll
TYPE = PLUGIN
# Static or Plugin...
ifeq ($(TYPE),STATIC)
DEFINES += -DSTATIC
DLL_INSTALL_DIR = $(PURPLE_INSTALL_DIR)
else
ifeq ($(TYPE),PLUGIN)
DLL_INSTALL_DIR = $(PURPLE_INSTALL_PLUGINS_DIR)
endif
endif
CFLAGS += -DG_LOG_DOMAIN=\"sametime\"
##
## INCLUDE PATHS
##
INCLUDE_PATHS += -I. \
-I$(MEANWHILE_TOP)/include/meanwhile \
-I$(GTK_TOP)/include \
-I$(GTK_TOP)/include/glib-2.0 \
-I$(GTK_TOP)/lib/glib-2.0/include \
-I$(PURPLE_TOP) \
-I$(PURPLE_TOP)/win32 \
-I$(PIDGIN_TREE_TOP)
LIB_PATHS += -L$(GTK_TOP)/lib \
-L$(MEANWHILE_TOP)/lib \
-L$(PURPLE_TOP)
##
## SOURCES, OBJECTS
##
C_SRC = sametime.c
OBJECTS = $(C_SRC:%.c=%.o)
##
## LIBRARIES
##
LIBS = \
-lglib-2.0 \
-lintl \
-lws2_32 \
-lmeanwhile \
-lpurple
include $(PIDGIN_COMMON_RULES)
##
## TARGET DEFINITIONS
##
.PHONY: all install clean
all: $(TARGET).dll
install: all $(DLL_INSTALL_DIR) $(PURPLE_INSTALL_DIR)
cp $(TARGET).dll $(DLL_INSTALL_DIR)
cp $(NEEDED_DLLS) $(PURPLE_INSTALL_DIR)
$(OBJECTS): $(PURPLE_CONFIG_H)
$(TARGET).dll: $(PURPLE_DLL).a $(OBJECTS)
$(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -o $(TARGET).dll
##
## CLEAN RULES
##
clean:
rm -f $(OBJECTS)
rm -f $(TARGET).dll
include $(PIDGIN_COMMON_TARGETS)