mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
Compare commits
3 commits
3528ca773d
...
d029551929
Author | SHA1 | Date | |
---|---|---|---|
|
d029551929 | ||
|
3194a4dac4 | ||
|
e7b66e7e4c |
30 changed files with 659 additions and 175 deletions
31
.mingw/Makefile.am
Normal file
31
.mingw/Makefile.am
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Create delay-loaded libraries from a DLL, that aren't vulnerable to side-loading
|
||||||
|
AM_V_DLLTOOL_0 = @echo " LIB $@";$(DLLTOOL)
|
||||||
|
AM_V_DLLTOOL_1 = $(DLLTOOL)
|
||||||
|
AM_V_DLLTOOL_ = $(AM_V_DLLTOOL_$(AM_DEFAULT_VERBOSITY))
|
||||||
|
AM_V_DLLTOOL = $(AM_V_DLLTOOL_$(V))
|
||||||
|
|
||||||
|
AM_V_SED_0 = @echo " SED $<";$(SED)
|
||||||
|
AM_V_SED_1 = $(SED)
|
||||||
|
AM_V_SED_ = $(AM_V_SED_$(AM_DEFAULT_VERBOSITY))
|
||||||
|
AM_V_SED = $(AM_V_SED_$(V))
|
||||||
|
|
||||||
|
# Ah the joys of Windows DLL calling conventions, that require an @## suffix in the .def
|
||||||
|
# for x86_32 and but no @## for x86_64, thereby forcing us to strip stuff according to the
|
||||||
|
# target arch. Oh, and we can't use 'target_cpu' or AC definitions on account that we are
|
||||||
|
# switching archs when building on our local machine, and don't want to have to go though
|
||||||
|
# a costly reconf each time when we can simply issue a 'make clean'.
|
||||||
|
TUPLE := $(shell $(CC) -dumpmachine)
|
||||||
|
TARGET := $(word 1,$(subst -, ,$(TUPLE)))
|
||||||
|
DEF_SUFFIX := $(if $(TARGET:x86_64=),.def,.def64)
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
all: dwmapi-delaylib.lib version-delaylib.lib wininet-delaylib.lib wintrust-delaylib.lib
|
||||||
|
|
||||||
|
%.def64: %.def
|
||||||
|
$(AM_V_SED) "s/@.*//" $< >$@
|
||||||
|
|
||||||
|
%-delaylib.lib: %$(DEF_SUFFIX)
|
||||||
|
$(AM_V_DLLTOOL) --input-def $< --output-delaylib $@ --dllname $(basename $<).dll
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) -rf *.lib
|
383
.mingw/Makefile.in
Normal file
383
.mingw/Makefile.in
Normal file
|
@ -0,0 +1,383 @@
|
||||||
|
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
|
||||||
|
am__make_running_with_option = \
|
||||||
|
case $${target_option-} in \
|
||||||
|
?) ;; \
|
||||||
|
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||||
|
"target option '$${target_option-}' specified" >&2; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
has_opt=no; \
|
||||||
|
sane_makeflags=$$MAKEFLAGS; \
|
||||||
|
if $(am__is_gnu_make); then \
|
||||||
|
sane_makeflags=$$MFLAGS; \
|
||||||
|
else \
|
||||||
|
case $$MAKEFLAGS in \
|
||||||
|
*\\[\ \ ]*) \
|
||||||
|
bs=\\; \
|
||||||
|
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||||
|
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||||
|
esac; \
|
||||||
|
fi; \
|
||||||
|
skip_next=no; \
|
||||||
|
strip_trailopt () \
|
||||||
|
{ \
|
||||||
|
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||||
|
}; \
|
||||||
|
for flg in $$sane_makeflags; do \
|
||||||
|
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||||
|
case $$flg in \
|
||||||
|
*=*|--*) continue;; \
|
||||||
|
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||||
|
-*I?*) strip_trailopt 'I';; \
|
||||||
|
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||||
|
-*O?*) strip_trailopt 'O';; \
|
||||||
|
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||||
|
-*l?*) strip_trailopt 'l';; \
|
||||||
|
-[dEDm]) skip_next=yes;; \
|
||||||
|
-[JT]) skip_next=yes;; \
|
||||||
|
esac; \
|
||||||
|
case $$flg in \
|
||||||
|
*$$target_option*) has_opt=yes; break;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
test $$has_opt = yes
|
||||||
|
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||||
|
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
subdir = .mingw
|
||||||
|
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
mkinstalldirs = $(install_sh) -d
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
AM_V_P = $(am__v_P_@AM_V@)
|
||||||
|
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||||
|
am__v_P_0 = false
|
||||||
|
am__v_P_1 = :
|
||||||
|
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||||
|
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||||
|
am__v_GEN_0 = @echo " GEN " $@;
|
||||||
|
am__v_GEN_1 =
|
||||||
|
AM_V_at = $(am__v_at_@AM_V@)
|
||||||
|
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||||
|
am__v_at_0 = @
|
||||||
|
am__v_at_1 =
|
||||||
|
depcomp =
|
||||||
|
am__depfiles_maybe =
|
||||||
|
SOURCES =
|
||||||
|
am__can_run_installinfo = \
|
||||||
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
|
n|no|NO) false;; \
|
||||||
|
*) (install-info --version) >/dev/null 2>&1;; \
|
||||||
|
esac
|
||||||
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AM_CFLAGS = @AM_CFLAGS@
|
||||||
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
AM_LDFLAGS = @AM_LDFLAGS@
|
||||||
|
AR = @AR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
CC = @CC@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
RM = @RM@
|
||||||
|
SED = @SED@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
SUFFIX = @SUFFIX@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
|
||||||
|
WINDRES = @WINDRES@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
runstatedir = @runstatedir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
|
||||||
|
# Create delay-loaded libraries from a DLL, that aren't vulnerable to side-loading
|
||||||
|
AM_V_DLLTOOL_0 = @echo " LIB $@";$(DLLTOOL)
|
||||||
|
AM_V_DLLTOOL_1 = $(DLLTOOL)
|
||||||
|
AM_V_DLLTOOL_ = $(AM_V_DLLTOOL_$(AM_DEFAULT_VERBOSITY))
|
||||||
|
AM_V_DLLTOOL = $(AM_V_DLLTOOL_$(V))
|
||||||
|
AM_V_SED_0 = @echo " SED $<";$(SED)
|
||||||
|
AM_V_SED_1 = $(SED)
|
||||||
|
AM_V_SED_ = $(AM_V_SED_$(AM_DEFAULT_VERBOSITY))
|
||||||
|
AM_V_SED = $(AM_V_SED_$(V))
|
||||||
|
|
||||||
|
# Ah the joys of Windows DLL calling conventions, that require an @## suffix in the .def
|
||||||
|
# for x86_32 and but no @## for x86_64, thereby forcing us to strip stuff according to the
|
||||||
|
# target arch. Oh, and we can't use 'target_cpu' or AC definitions on account that we are
|
||||||
|
# switching archs when building on our local machine, and don't want to have to go though
|
||||||
|
# a costly reconf each time when we can simply issue a 'make clean'.
|
||||||
|
TUPLE := $(shell $(CC) -dumpmachine)
|
||||||
|
TARGET := $(word 1,$(subst -, ,$(TUPLE)))
|
||||||
|
DEF_SUFFIX := $(if $(TARGET:x86_64=),.def,.def64)
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps .mingw/Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --foreign --ignore-deps .mingw/Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
tags TAGS:
|
||||||
|
|
||||||
|
ctags CTAGS:
|
||||||
|
|
||||||
|
cscope cscopelist:
|
||||||
|
|
||||||
|
check-am: all-am
|
||||||
|
check: check-am
|
||||||
|
all-am: Makefile
|
||||||
|
installdirs:
|
||||||
|
install: install-am
|
||||||
|
install-exec: install-exec-am
|
||||||
|
install-data: install-data-am
|
||||||
|
uninstall: uninstall-am
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-strip:
|
||||||
|
if test -z '$(STRIP)'; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
install; \
|
||||||
|
else \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
|
fi
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean-am: clean-generic mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-generic
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-am
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-generic
|
||||||
|
|
||||||
|
pdf: pdf-am
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-am
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am:
|
||||||
|
|
||||||
|
.MAKE: install-am install-strip
|
||||||
|
|
||||||
|
.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
|
||||||
|
ctags-am distclean distclean-generic dvi dvi-am html html-am \
|
||||||
|
info info-am install install-am install-data install-data-am \
|
||||||
|
install-dvi install-dvi-am install-exec install-exec-am \
|
||||||
|
install-html install-html-am install-info install-info-am \
|
||||||
|
install-man install-pdf install-pdf-am install-ps \
|
||||||
|
install-ps-am install-strip installcheck installcheck-am \
|
||||||
|
installdirs maintainer-clean maintainer-clean-generic \
|
||||||
|
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags-am \
|
||||||
|
uninstall uninstall-am
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
all: dwmapi-delaylib.lib version-delaylib.lib wininet-delaylib.lib wintrust-delaylib.lib
|
||||||
|
|
||||||
|
%.def64: %.def
|
||||||
|
$(AM_V_SED) "s/@.*//" $< >$@
|
||||||
|
|
||||||
|
%-delaylib.lib: %$(DEF_SUFFIX)
|
||||||
|
$(AM_V_DLLTOOL) --input-def $< --output-delaylib $@ --dllname $(basename $<).dll
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) -rf *.lib
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
2
.mingw/dwmapi.def
Normal file
2
.mingw/dwmapi.def
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
EXPORTS
|
||||||
|
DwmGetWindowAttribute@16
|
4
.mingw/version.def
Normal file
4
.mingw/version.def
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
EXPORTS
|
||||||
|
GetFileVersionInfoW@16
|
||||||
|
GetFileVersionInfoSizeW@8
|
||||||
|
VerQueryValueA@16
|
13
.mingw/wininet.def
Normal file
13
.mingw/wininet.def
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
EXPORTS
|
||||||
|
HttpQueryInfoA@20
|
||||||
|
HttpOpenRequestA@32
|
||||||
|
HttpSendRequestA@20
|
||||||
|
InternetCloseHandle@4
|
||||||
|
InternetConnectA@32
|
||||||
|
InternetCrackUrlA@16
|
||||||
|
InternetGetConnectedState@8
|
||||||
|
InternetGetLastResponseInfoA@12
|
||||||
|
InternetOpenA@20
|
||||||
|
InternetReadFile@16
|
||||||
|
InternetSetOptionA@16
|
||||||
|
|
2
.mingw/wintrust.def
Normal file
2
.mingw/wintrust.def
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
EXPORTS
|
||||||
|
WinVerifyTrustEx@12
|
|
@ -133,12 +133,12 @@
|
||||||
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;setupapi.lib;shell32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;wintrust.lib;version.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;setupapi.dll;shell32.dll;shlwapi.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;wintrust.dll;version.dll;wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@ -158,12 +158,12 @@
|
||||||
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;setupapi.lib;shell32.lib;shlwapi.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;wintrust.lib;version.lib;wininet.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories>
|
||||||
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;setupapi.dll;shell32.dll;shlwapi.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;wintrust.dll;version.dll;wininet.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@ -185,12 +185,12 @@
|
||||||
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;setupapi.lib;shell32.lib;shlwapi.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;wintrust.lib;version.lib;wininet.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories>
|
||||||
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;setupapi.dll;shell32.dll;shlwapi.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;wintrust.dll;version.dll;wininet.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@ -217,12 +217,12 @@
|
||||||
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;setupapi.lib;shell32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;wintrust.lib;version.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
<TargetMachine>MachineX64</TargetMachine>
|
||||||
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;setupapi.dll;shell32.dll;shlwapi.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;wintrust.dll;version.dll;wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@ -244,13 +244,13 @@
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;setupapi.lib;shell32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;wintrust.lib;version.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
|
||||||
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;setupapi.dll;shell32.dll;shlwapi.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;wintrust.dll;version.dll;wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@ -272,13 +272,13 @@
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;setupapi.lib;shell32.lib;shlwapi.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;wintrust.lib;version.lib;wininet.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories>
|
||||||
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
|
||||||
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;setupapi.dll;shell32.dll;shlwapi.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;wintrust.dll;version.dll;wininet.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@ -302,13 +302,13 @@
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;setupapi.lib;shell32.lib;shlwapi.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;wintrust.lib;version.lib;wininet.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories>
|
||||||
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
|
||||||
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;setupapi.dll;shell32.dll;shlwapi.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;wintrust.dll;version.dll;wininet.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@ -335,13 +335,13 @@
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;setupapi.lib;shell32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;wintrust.lib;version.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
<TargetMachine>MachineX64</TargetMachine>
|
||||||
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
|
||||||
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;setupapi.dll;shell32.dll;shlwapi.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>advapi32.dll;comctl32.dll;comdlg32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;wintrust.dll;version.dll;wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
|
|
@ -159,6 +159,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
110
configure
vendored
110
configure
vendored
|
@ -626,6 +626,7 @@ AM_LDFLAGS
|
||||||
AM_CFLAGS
|
AM_CFLAGS
|
||||||
VISIBILITY_CFLAGS
|
VISIBILITY_CFLAGS
|
||||||
WINDRES
|
WINDRES
|
||||||
|
DLLTOOL
|
||||||
RM
|
RM
|
||||||
SED
|
SED
|
||||||
RANLIB
|
RANLIB
|
||||||
|
@ -4283,6 +4284,108 @@ printf "%s\n" "no" >&6; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if test -n "$ac_tool_prefix"; then
|
||||||
|
# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
|
||||||
|
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||||
|
printf %s "checking for $ac_word... " >&6; }
|
||||||
|
if test ${ac_cv_prog_DLLTOOL+y}
|
||||||
|
then :
|
||||||
|
printf %s "(cached) " >&6
|
||||||
|
else $as_nop
|
||||||
|
if test -n "$DLLTOOL"; then
|
||||||
|
ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
|
||||||
|
else
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
case $as_dir in #(((
|
||||||
|
'') as_dir=./ ;;
|
||||||
|
*/) ;;
|
||||||
|
*) as_dir=$as_dir/ ;;
|
||||||
|
esac
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
|
||||||
|
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
|
||||||
|
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
DLLTOOL=$ac_cv_prog_DLLTOOL
|
||||||
|
if test -n "$DLLTOOL"; then
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
|
||||||
|
printf "%s\n" "$DLLTOOL" >&6; }
|
||||||
|
else
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
printf "%s\n" "no" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
if test -z "$ac_cv_prog_DLLTOOL"; then
|
||||||
|
ac_ct_DLLTOOL=$DLLTOOL
|
||||||
|
# Extract the first word of "dlltool", so it can be a program name with args.
|
||||||
|
set dummy dlltool; ac_word=$2
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||||
|
printf %s "checking for $ac_word... " >&6; }
|
||||||
|
if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
|
||||||
|
then :
|
||||||
|
printf %s "(cached) " >&6
|
||||||
|
else $as_nop
|
||||||
|
if test -n "$ac_ct_DLLTOOL"; then
|
||||||
|
ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
|
||||||
|
else
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
case $as_dir in #(((
|
||||||
|
'') as_dir=./ ;;
|
||||||
|
*/) ;;
|
||||||
|
*) as_dir=$as_dir/ ;;
|
||||||
|
esac
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
|
||||||
|
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
|
||||||
|
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
|
||||||
|
if test -n "$ac_ct_DLLTOOL"; then
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
|
||||||
|
printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
|
||||||
|
else
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
printf "%s\n" "no" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$ac_ct_DLLTOOL" = x; then
|
||||||
|
DLLTOOL=":"
|
||||||
|
else
|
||||||
|
case $cross_compiling:$ac_tool_warned in
|
||||||
|
yes:)
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||||||
|
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||||||
|
ac_tool_warned=yes ;;
|
||||||
|
esac
|
||||||
|
DLLTOOL=$ac_ct_DLLTOOL
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
DLLTOOL="$ac_cv_prog_DLLTOOL"
|
||||||
|
fi
|
||||||
|
|
||||||
if test -n "$ac_tool_prefix"; then
|
if test -n "$ac_tool_prefix"; then
|
||||||
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
|
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
|
||||||
set dummy ${ac_tool_prefix}strip; ac_word=$2
|
set dummy ${ac_tool_prefix}strip; ac_word=$2
|
||||||
|
@ -4371,7 +4474,7 @@ printf "%s\n" "no" >&6; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$ac_ct_STRIP" = x; then
|
if test "x$ac_ct_STRIP" = x; then
|
||||||
STRIP="strip"
|
STRIP=":"
|
||||||
else
|
else
|
||||||
case $cross_compiling:$ac_tool_warned in
|
case $cross_compiling:$ac_tool_warned in
|
||||||
yes:)
|
yes:)
|
||||||
|
@ -4473,7 +4576,7 @@ printf "%s\n" "no" >&6; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$ac_ct_WINDRES" = x; then
|
if test "x$ac_ct_WINDRES" = x; then
|
||||||
WINDRES="windres"
|
WINDRES=":"
|
||||||
else
|
else
|
||||||
case $cross_compiling:$ac_tool_warned in
|
case $cross_compiling:$ac_tool_warned in
|
||||||
yes:)
|
yes:)
|
||||||
|
@ -4632,6 +4735,8 @@ AM_CFLAGS="$AM_CFLAGS -DUNICODE -D_UNICODE -UNDEBUG -DCOBJMACROS -D__USE_MINGW_A
|
||||||
|
|
||||||
ac_config_files="$ac_config_files Makefile"
|
ac_config_files="$ac_config_files Makefile"
|
||||||
|
|
||||||
|
ac_config_files="$ac_config_files .mingw/Makefile"
|
||||||
|
|
||||||
ac_config_files="$ac_config_files src/Makefile"
|
ac_config_files="$ac_config_files src/Makefile"
|
||||||
|
|
||||||
ac_config_files="$ac_config_files src/bled/Makefile"
|
ac_config_files="$ac_config_files src/bled/Makefile"
|
||||||
|
@ -5375,6 +5480,7 @@ for ac_config_target in $ac_config_targets
|
||||||
do
|
do
|
||||||
case $ac_config_target in
|
case $ac_config_target in
|
||||||
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||||||
|
".mingw/Makefile") CONFIG_FILES="$CONFIG_FILES .mingw/Makefile" ;;
|
||||||
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
|
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
|
||||||
"src/bled/Makefile") CONFIG_FILES="$CONFIG_FILES src/bled/Makefile" ;;
|
"src/bled/Makefile") CONFIG_FILES="$CONFIG_FILES src/bled/Makefile" ;;
|
||||||
"src/ext2fs/Makefile") CONFIG_FILES="$CONFIG_FILES src/ext2fs/Makefile" ;;
|
"src/ext2fs/Makefile") CONFIG_FILES="$CONFIG_FILES src/ext2fs/Makefile" ;;
|
||||||
|
|
|
@ -12,8 +12,9 @@ AC_PROG_AR
|
||||||
AC_PROG_RANLIB
|
AC_PROG_RANLIB
|
||||||
AC_PROG_SED
|
AC_PROG_SED
|
||||||
AC_PATH_PROG(RM, rm, rm)
|
AC_PATH_PROG(RM, rm, rm)
|
||||||
AC_CHECK_TOOL(STRIP, strip, strip)
|
AC_CHECK_TOOL(DLLTOOL, dlltool, :)
|
||||||
AC_CHECK_TOOL(WINDRES, windres, windres)
|
AC_CHECK_TOOL(STRIP, strip, :)
|
||||||
|
AC_CHECK_TOOL(WINDRES, windres, :)
|
||||||
AC_C_INLINE
|
AC_C_INLINE
|
||||||
AC_DEFINE([_GNU_SOURCE], [], [Use GNU extensions])
|
AC_DEFINE([_GNU_SOURCE], [], [Use GNU extensions])
|
||||||
|
|
||||||
|
@ -71,6 +72,7 @@ AC_SUBST([AM_LDFLAGS])
|
||||||
AC_SUBST([SUFFIX])
|
AC_SUBST([SUFFIX])
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile])
|
AC_CONFIG_FILES([Makefile])
|
||||||
|
AC_CONFIG_FILES([.mingw/Makefile])
|
||||||
AC_CONFIG_FILES([src/Makefile])
|
AC_CONFIG_FILES([src/Makefile])
|
||||||
AC_CONFIG_FILES([src/bled/Makefile])
|
AC_CONFIG_FILES([src/bled/Makefile])
|
||||||
AC_CONFIG_FILES([src/ext2fs/Makefile])
|
AC_CONFIG_FILES([src/ext2fs/Makefile])
|
||||||
|
|
|
@ -123,6 +123,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
SUBDIRS = bled ext2fs ms-sys syslinux/libfat syslinux/libinstaller syslinux/win libcdio/iso9660 libcdio/udf libcdio/driver ../res/loc
|
SUBDIRS = ../.mingw bled ext2fs ms-sys syslinux/libfat syslinux/libinstaller syslinux/win libcdio/iso9660 libcdio/udf libcdio/driver ../res/loc
|
||||||
|
# As far as I can tell, the following libraries are *not* vulnerable to side-loading, so we link using their regular version:
|
||||||
|
NONVULNERABLE_LIBS = -lsetupapi -lole32 -lgdi32 -lshlwapi -lcrypt32 -lcomdlg32 -lcomctl32 -luuid
|
||||||
|
# The following libraries are vulnerable (or have an unknown vulnerability status), so we link using our delay-loaded replacement:
|
||||||
|
VULNERABLE_LIBS = -ldwmapi-delaylib -lversion-delaylib -lwininet-delaylib -lwintrust-delaylib
|
||||||
|
|
||||||
noinst_PROGRAMS = rufus
|
noinst_PROGRAMS = rufus
|
||||||
|
|
||||||
|
@ -14,7 +18,6 @@ rufus_SOURCES = badblocks.c checksum.c dev.c dos.c dos_locale.c drive.c format.c
|
||||||
net.c parser.c pki.c process.c re.c rufus.c smart.c stdfn.c stdio.c stdlg.c syslinux.c ui.c vhd.c
|
net.c parser.c pki.c process.c re.c rufus.c smart.c stdfn.c stdio.c stdlg.c syslinux.c ui.c vhd.c
|
||||||
rufus_CFLAGS = -I$(srcdir)/ms-sys/inc -I$(srcdir)/syslinux/libfat -I$(srcdir)/syslinux/libinstaller -I$(srcdir)/syslinux/win -I$(srcdir)/libcdio $(AM_CFLAGS) \
|
rufus_CFLAGS = -I$(srcdir)/ms-sys/inc -I$(srcdir)/syslinux/libfat -I$(srcdir)/syslinux/libinstaller -I$(srcdir)/syslinux/win -I$(srcdir)/libcdio $(AM_CFLAGS) \
|
||||||
-DEXT2_FLAT_INCLUDES=0 -DSOLUTION=rufus
|
-DEXT2_FLAT_INCLUDES=0 -DSOLUTION=rufus
|
||||||
rufus_LDFLAGS = $(AM_LDFLAGS) -mwindows
|
rufus_LDFLAGS = $(AM_LDFLAGS) -mwindows -L ../.mingw
|
||||||
# Note: Do not link with -lversion as this will results in DLL sideloading issue. See https://github.com/pbatard/rufus/pull/1838
|
|
||||||
rufus_LDADD = rufus_rc.o bled/libbled.a ext2fs/libext2fs.a ms-sys/libmssys.a syslinux/libfat/libfat.a syslinux/libinstaller/libinstaller.a syslinux/win/libwin.a \
|
rufus_LDADD = rufus_rc.o bled/libbled.a ext2fs/libext2fs.a ms-sys/libmssys.a syslinux/libfat/libfat.a syslinux/libinstaller/libinstaller.a syslinux/win/libwin.a \
|
||||||
libcdio/iso9660/libiso9660.a libcdio/udf/libudf.a libcdio/driver/libdriver.a -lsetupapi -lole32 -lgdi32 -lshlwapi -lcrypt32 -lcomdlg32 -lcomctl32 -luuid -lpsapi
|
libcdio/iso9660/libiso9660.a libcdio/udf/libudf.a libcdio/driver/libdriver.a $(NONVULNERABLE_LIBS) $(VULNERABLE_LIBS)
|
||||||
|
|
|
@ -100,11 +100,13 @@ am_rufus_OBJECTS = rufus-badblocks.$(OBJEXT) rufus-checksum.$(OBJEXT) \
|
||||||
rufus-stdlg.$(OBJEXT) rufus-syslinux.$(OBJEXT) \
|
rufus-stdlg.$(OBJEXT) rufus-syslinux.$(OBJEXT) \
|
||||||
rufus-ui.$(OBJEXT) rufus-vhd.$(OBJEXT)
|
rufus-ui.$(OBJEXT) rufus-vhd.$(OBJEXT)
|
||||||
rufus_OBJECTS = $(am_rufus_OBJECTS)
|
rufus_OBJECTS = $(am_rufus_OBJECTS)
|
||||||
|
am__DEPENDENCIES_1 =
|
||||||
rufus_DEPENDENCIES = rufus_rc.o bled/libbled.a ext2fs/libext2fs.a \
|
rufus_DEPENDENCIES = rufus_rc.o bled/libbled.a ext2fs/libext2fs.a \
|
||||||
ms-sys/libmssys.a syslinux/libfat/libfat.a \
|
ms-sys/libmssys.a syslinux/libfat/libfat.a \
|
||||||
syslinux/libinstaller/libinstaller.a syslinux/win/libwin.a \
|
syslinux/libinstaller/libinstaller.a syslinux/win/libwin.a \
|
||||||
libcdio/iso9660/libiso9660.a libcdio/udf/libudf.a \
|
libcdio/iso9660/libiso9660.a libcdio/udf/libudf.a \
|
||||||
libcdio/driver/libdriver.a
|
libcdio/driver/libdriver.a $(am__DEPENDENCIES_1) \
|
||||||
|
$(am__DEPENDENCIES_1)
|
||||||
rufus_LINK = $(CCLD) $(rufus_CFLAGS) $(CFLAGS) $(rufus_LDFLAGS) \
|
rufus_LINK = $(CCLD) $(rufus_CFLAGS) $(CFLAGS) $(rufus_LDFLAGS) \
|
||||||
$(LDFLAGS) -o $@
|
$(LDFLAGS) -o $@
|
||||||
AM_V_P = $(am__v_P_@AM_V@)
|
AM_V_P = $(am__v_P_@AM_V@)
|
||||||
|
@ -194,6 +196,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
@ -269,7 +272,11 @@ target_alias = @target_alias@
|
||||||
top_build_prefix = @top_build_prefix@
|
top_build_prefix = @top_build_prefix@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
SUBDIRS = bled ext2fs ms-sys syslinux/libfat syslinux/libinstaller syslinux/win libcdio/iso9660 libcdio/udf libcdio/driver ../res/loc
|
SUBDIRS = ../.mingw bled ext2fs ms-sys syslinux/libfat syslinux/libinstaller syslinux/win libcdio/iso9660 libcdio/udf libcdio/driver ../res/loc
|
||||||
|
# As far as I can tell, the following libraries are *not* vulnerable to side-loading, so we link using their regular version:
|
||||||
|
NONVULNERABLE_LIBS = -lsetupapi -lole32 -lgdi32 -lshlwapi -lcrypt32 -lcomdlg32 -lcomctl32 -luuid
|
||||||
|
# The following libraries are vulnerable (or have an unknown vulnerability status), so we link using our delay-loaded replacement:
|
||||||
|
VULNERABLE_LIBS = -ldwmapi-delaylib -lversion-delaylib -lwininet-delaylib -lwintrust-delaylib
|
||||||
AM_V_WINDRES_0 = @echo " RC $@";$(WINDRES)
|
AM_V_WINDRES_0 = @echo " RC $@";$(WINDRES)
|
||||||
AM_V_WINDRES_1 = $(WINDRES)
|
AM_V_WINDRES_1 = $(WINDRES)
|
||||||
AM_V_WINDRES_ = $(AM_V_WINDRES_$(AM_DEFAULT_VERBOSITY))
|
AM_V_WINDRES_ = $(AM_V_WINDRES_$(AM_DEFAULT_VERBOSITY))
|
||||||
|
@ -280,10 +287,9 @@ rufus_SOURCES = badblocks.c checksum.c dev.c dos.c dos_locale.c drive.c format.c
|
||||||
rufus_CFLAGS = -I$(srcdir)/ms-sys/inc -I$(srcdir)/syslinux/libfat -I$(srcdir)/syslinux/libinstaller -I$(srcdir)/syslinux/win -I$(srcdir)/libcdio $(AM_CFLAGS) \
|
rufus_CFLAGS = -I$(srcdir)/ms-sys/inc -I$(srcdir)/syslinux/libfat -I$(srcdir)/syslinux/libinstaller -I$(srcdir)/syslinux/win -I$(srcdir)/libcdio $(AM_CFLAGS) \
|
||||||
-DEXT2_FLAT_INCLUDES=0 -DSOLUTION=rufus
|
-DEXT2_FLAT_INCLUDES=0 -DSOLUTION=rufus
|
||||||
|
|
||||||
rufus_LDFLAGS = $(AM_LDFLAGS) -mwindows
|
rufus_LDFLAGS = $(AM_LDFLAGS) -mwindows -L ../.mingw
|
||||||
# Note: Do not link with -lversion as this will results in DLL sideloading issue. See https://github.com/pbatard/rufus/pull/1838
|
|
||||||
rufus_LDADD = rufus_rc.o bled/libbled.a ext2fs/libext2fs.a ms-sys/libmssys.a syslinux/libfat/libfat.a syslinux/libinstaller/libinstaller.a syslinux/win/libwin.a \
|
rufus_LDADD = rufus_rc.o bled/libbled.a ext2fs/libext2fs.a ms-sys/libmssys.a syslinux/libfat/libfat.a syslinux/libinstaller/libinstaller.a syslinux/win/libwin.a \
|
||||||
libcdio/iso9660/libiso9660.a libcdio/udf/libudf.a libcdio/driver/libdriver.a -lsetupapi -lole32 -lgdi32 -lshlwapi -lcrypt32 -lcomdlg32 -lcomctl32 -luuid -lpsapi
|
libcdio/iso9660/libiso9660.a libcdio/udf/libudf.a libcdio/driver/libdriver.a $(NONVULNERABLE_LIBS) $(VULNERABLE_LIBS)
|
||||||
|
|
||||||
all: all-recursive
|
all: all-recursive
|
||||||
|
|
||||||
|
|
|
@ -190,6 +190,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
|
@ -61,12 +61,9 @@ static BOOL GetUSBProperties(char* parent_path, char* device_id, usb_device_prop
|
||||||
DEVINST device_inst;
|
DEVINST device_inst;
|
||||||
USB_NODE_CONNECTION_INFORMATION_EX conn_info;
|
USB_NODE_CONNECTION_INFORMATION_EX conn_info;
|
||||||
USB_NODE_CONNECTION_INFORMATION_EX_V2 conn_info_v2;
|
USB_NODE_CONNECTION_INFORMATION_EX_V2 conn_info_v2;
|
||||||
PF_INIT(CM_Get_DevNode_Registry_PropertyA, Cfgmgr32);
|
|
||||||
|
|
||||||
if ((parent_path == NULL) || (device_id == NULL) || (props == NULL) ||
|
if ((parent_path == NULL) || (device_id == NULL) || (props == NULL))
|
||||||
(pfCM_Get_DevNode_Registry_PropertyA == NULL)) {
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
|
||||||
|
|
||||||
cr = CM_Locate_DevNodeA(&device_inst, device_id, 0);
|
cr = CM_Locate_DevNodeA(&device_inst, device_id, 0);
|
||||||
if (cr != CR_SUCCESS) {
|
if (cr != CR_SUCCESS) {
|
||||||
|
@ -76,7 +73,7 @@ static BOOL GetUSBProperties(char* parent_path, char* device_id, usb_device_prop
|
||||||
|
|
||||||
props->port = 0;
|
props->port = 0;
|
||||||
size = sizeof(props->port);
|
size = sizeof(props->port);
|
||||||
cr = pfCM_Get_DevNode_Registry_PropertyA(device_inst, CM_DRP_ADDRESS, NULL, (PVOID)&props->port, &size, 0);
|
cr = CM_Get_DevNode_Registry_PropertyA(device_inst, CM_DRP_ADDRESS, NULL, (PVOID)&props->port, &size, 0);
|
||||||
if (cr != CR_SUCCESS) {
|
if (cr != CR_SUCCESS) {
|
||||||
uprintf("Could not get port for '%s': CR error %d", device_id, cr);
|
uprintf("Could not get port for '%s': CR error %d", device_id, cr);
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
@ -86,8 +86,6 @@ DECLSPEC_IMPORT CONFIGRET WINAPI CM_Get_Child(PDEVINST pdnDevInst, DEVINST dnDev
|
||||||
DECLSPEC_IMPORT CONFIGRET WINAPI CM_Get_Parent(PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags);
|
DECLSPEC_IMPORT CONFIGRET WINAPI CM_Get_Parent(PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags);
|
||||||
DECLSPEC_IMPORT CONFIGRET WINAPI CM_Get_Sibling(PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags);
|
DECLSPEC_IMPORT CONFIGRET WINAPI CM_Get_Sibling(PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags);
|
||||||
DECLSPEC_IMPORT CONFIGRET WINAPI CM_Get_DevNode_Status(PULONG pulStatus, PULONG pulProblemNumber, DEVINST dnDevInst, ULONG ulFlags);
|
DECLSPEC_IMPORT CONFIGRET WINAPI CM_Get_DevNode_Status(PULONG pulStatus, PULONG pulProblemNumber, DEVINST dnDevInst, ULONG ulFlags);
|
||||||
// This last one is unknown from MinGW32 and needs to be fetched from the DLL
|
|
||||||
PF_TYPE_DECL(WINAPI, CONFIGRET, CM_Get_DevNode_Registry_PropertyA, (DEVINST, ULONG, PULONG, PVOID, PULONG, ULONG));
|
|
||||||
|
|
||||||
#define USB_HUB_CYCLE_PORT 273
|
#define USB_HUB_CYCLE_PORT 273
|
||||||
#define USB_GET_NODE_CONNECTION_INFORMATION_EX 274
|
#define USB_GET_NODE_CONNECTION_INFORMATION_EX 274
|
||||||
|
|
|
@ -196,6 +196,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
|
@ -964,6 +964,7 @@ static BOOL WriteSBR(HANDLE hPhysicalDrive)
|
||||||
if (memcmp(&patched[grub_patch[i].patch[j].src->offset], grub_patch[i].patch[j].src->data,
|
if (memcmp(&patched[grub_patch[i].patch[j].src->offset], grub_patch[i].patch[j].src->data,
|
||||||
grub_patch[i].patch[j].src->size) != 0) {
|
grub_patch[i].patch[j].src->size) != 0) {
|
||||||
uprintf("ERROR: Did not find expected source data for GRUB patch");
|
uprintf("ERROR: Did not find expected source data for GRUB patch");
|
||||||
|
free(patched);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
memcpy(&patched[grub_patch[i].patch[j].rep->offset], grub_patch[i].patch[j].rep->data,
|
memcpy(&patched[grub_patch[i].patch[j].rep->offset], grub_patch[i].patch[j].rep->data,
|
||||||
|
|
28
src/iso.c
28
src/iso.c
|
@ -861,12 +861,6 @@ void GetGrubVersion(char* buf, size_t buf_size)
|
||||||
img_report.grub2_version[0] = 0;
|
img_report.grub2_version[0] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Linking to version.lib would result in DLL sideloading issues, so we don't
|
|
||||||
// See https://github.com/pbatard/rufus/pull/1838
|
|
||||||
PF_TYPE_DECL(WINAPI, DWORD, GetFileVersionInfoSizeW, (LPCWSTR, LPDWORD));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, GetFileVersionInfoW, (LPCWSTR, DWORD, DWORD, LPVOID));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, VerQueryValueA, (LPCVOID, LPCSTR, LPVOID, PUINT));
|
|
||||||
|
|
||||||
BOOL ExtractISO(const char* src_iso, const char* dest_dir, BOOL scan)
|
BOOL ExtractISO(const char* src_iso, const char* dest_dir, BOOL scan)
|
||||||
{
|
{
|
||||||
size_t i, j, size, sl_index = 0;
|
size_t i, j, size, sl_index = 0;
|
||||||
|
@ -887,10 +881,6 @@ BOOL ExtractISO(const char* src_iso, const char* dest_dir, BOOL scan)
|
||||||
if ((!enable_iso) || (src_iso == NULL) || (dest_dir == NULL))
|
if ((!enable_iso) || (src_iso == NULL) || (dest_dir == NULL))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
PF_INIT_OR_OUT(GetFileVersionInfoSizeW, Version);
|
|
||||||
PF_INIT_OR_OUT(GetFileVersionInfoW, Version);
|
|
||||||
PF_INIT_OR_OUT(VerQueryValueA, Version);
|
|
||||||
|
|
||||||
scan_only = scan;
|
scan_only = scan;
|
||||||
if (!scan_only)
|
if (!scan_only)
|
||||||
spacing = "";
|
spacing = "";
|
||||||
|
@ -1160,19 +1150,16 @@ out:
|
||||||
VS_FIXEDFILEINFO* ver_info = NULL;
|
VS_FIXEDFILEINFO* ver_info = NULL;
|
||||||
DWORD ver_handle = 0, ver_size;
|
DWORD ver_handle = 0, ver_size;
|
||||||
UINT value_len = 0;
|
UINT value_len = 0;
|
||||||
assert(pfGetFileVersionInfoSizeW != NULL);
|
|
||||||
assert(pfGetFileVersionInfoW != NULL);
|
|
||||||
assert(pfVerQueryValueA != NULL);
|
|
||||||
// coverity[swapped_arguments]
|
// coverity[swapped_arguments]
|
||||||
if (GetTempFileNameU(temp_dir, APPLICATION_NAME, 0, path) != 0) {
|
if (GetTempFileNameU(temp_dir, APPLICATION_NAME, 0, path) != 0) {
|
||||||
wconvert(path);
|
// NB: Calling the GetFileVersion/VerQueryValue APIs create DLL sideloading issues.
|
||||||
assert(wpath != NULL);
|
// So make sure you delay-load 'version.dll' in your application if you use these.
|
||||||
size = (size_t)ExtractISOFile(src_iso, "sources/compatresources.dll", path, FILE_ATTRIBUTE_NORMAL);
|
size = (size_t)ExtractISOFile(src_iso, "sources/compatresources.dll", path, FILE_ATTRIBUTE_NORMAL);
|
||||||
ver_size = pfGetFileVersionInfoSizeW(wpath, &ver_handle);
|
ver_size = GetFileVersionInfoSizeU(path, &ver_handle);
|
||||||
if (ver_size != 0) {
|
if (ver_size != 0) {
|
||||||
buf = malloc(ver_size);
|
buf = malloc(ver_size);
|
||||||
if ((buf != NULL) && pfGetFileVersionInfoW(wpath, ver_handle, ver_size, buf) &&
|
if ((buf != NULL) && GetFileVersionInfoU(path, ver_handle, ver_size, buf) &&
|
||||||
pfVerQueryValueA(buf, "\\", (LPVOID)&ver_info, &value_len) && (value_len != 0)) {
|
VerQueryValueA(buf, "\\", (LPVOID)&ver_info, &value_len) && (value_len != 0)) {
|
||||||
if (ver_info->dwSignature == VS_FFI_SIGNATURE) {
|
if (ver_info->dwSignature == VS_FFI_SIGNATURE) {
|
||||||
img_report.win_version.major = HIWORD(ver_info->dwFileVersionMS);
|
img_report.win_version.major = HIWORD(ver_info->dwFileVersionMS);
|
||||||
img_report.win_version.minor = LOWORD(ver_info->dwFileVersionMS);
|
img_report.win_version.minor = LOWORD(ver_info->dwFileVersionMS);
|
||||||
|
@ -1184,8 +1171,7 @@ out:
|
||||||
}
|
}
|
||||||
free(buf);
|
free(buf);
|
||||||
}
|
}
|
||||||
DeleteFileW(wpath);
|
DeleteFileU(path);
|
||||||
free(wpath);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
StrArrayDestroy(&config_path);
|
StrArrayDestroy(&config_path);
|
||||||
|
@ -1594,7 +1580,6 @@ BOOL DumpFatDir(const char* path, int32_t cluster)
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// coverity[-taint_source]
|
|
||||||
dirpos.cluster = libfat_dumpdir(lf_fs, &dirpos, &diritem);
|
dirpos.cluster = libfat_dumpdir(lf_fs, &dirpos, &diritem);
|
||||||
if (dirpos.cluster >= 0) {
|
if (dirpos.cluster >= 0) {
|
||||||
name = wchar_to_utf8(diritem.name);
|
name = wchar_to_utf8(diritem.name);
|
||||||
|
@ -1654,6 +1639,7 @@ BOOL DumpFatDir(const char* path, int32_t cluster)
|
||||||
safe_free(target);
|
safe_free(target);
|
||||||
safe_free(name);
|
safe_free(name);
|
||||||
}
|
}
|
||||||
|
// coverity[tainted_data]
|
||||||
} while (dirpos.cluster >= 0);
|
} while (dirpos.cluster >= 0);
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
|
|
||||||
|
|
|
@ -171,6 +171,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
|
@ -168,6 +168,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
|
@ -168,6 +168,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
|
@ -169,6 +169,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
146
src/net.c
146
src/net.c
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Rufus: The Reliable USB Formatting Utility
|
* Rufus: The Reliable USB Formatting Utility
|
||||||
* Networking functionality (web file download, check for update, etc.)
|
* Networking functionality (web file download, check for update, etc.)
|
||||||
* Copyright © 2012-2021 Pete Batard <pete@akeo.ie>
|
* Copyright © 2012-2022 Pete Batard <pete@akeo.ie>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -69,8 +69,6 @@ const char* WinInetErrorString(void)
|
||||||
{
|
{
|
||||||
static char error_string[256];
|
static char error_string[256];
|
||||||
DWORD size = sizeof(error_string);
|
DWORD size = sizeof(error_string);
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetGetLastResponseInfoA, (LPDWORD, LPSTR, LPDWORD));
|
|
||||||
PF_INIT(InternetGetLastResponseInfoA, WinInet);
|
|
||||||
|
|
||||||
error_code = HRESULT_CODE(GetLastError());
|
error_code = HRESULT_CODE(GetLastError());
|
||||||
|
|
||||||
|
@ -221,10 +219,8 @@ const char* WinInetErrorString(void)
|
||||||
case ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY:
|
case ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY:
|
||||||
return "Please ask Microsoft about that one!";
|
return "Please ask Microsoft about that one!";
|
||||||
case ERROR_INTERNET_EXTENDED_ERROR:
|
case ERROR_INTERNET_EXTENDED_ERROR:
|
||||||
if (pfInternetGetLastResponseInfoA != NULL) {
|
InternetGetLastResponseInfoA(&error_code, error_string, &size);
|
||||||
pfInternetGetLastResponseInfoA(&error_code, error_string, &size);
|
return error_string;
|
||||||
return error_string;
|
|
||||||
}
|
|
||||||
// fall through
|
// fall through
|
||||||
default:
|
default:
|
||||||
static_sprintf(error_string, "Unknown internet error 0x%08lX", error_code);
|
static_sprintf(error_string, "Unknown internet error 0x%08lX", error_code);
|
||||||
|
@ -277,13 +273,6 @@ static HINTERNET GetInternetSession(BOOL bRetry)
|
||||||
HRESULT hr = S_FALSE;
|
HRESULT hr = S_FALSE;
|
||||||
INetworkListManager* pNetworkListManager;
|
INetworkListManager* pNetworkListManager;
|
||||||
|
|
||||||
PF_TYPE_DECL(WINAPI, HINTERNET, InternetOpenA, (LPCSTR, DWORD, LPCSTR, LPCSTR, DWORD));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetSetOptionA, (HINTERNET, DWORD, LPVOID, DWORD));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetGetConnectedState, (LPDWORD, DWORD));
|
|
||||||
PF_INIT_OR_OUT(InternetOpenA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(InternetSetOptionA, WinInet);
|
|
||||||
PF_INIT(InternetGetConnectedState, WinInet);
|
|
||||||
|
|
||||||
// Create a NetworkListManager Instance to check the network connection
|
// Create a NetworkListManager Instance to check the network connection
|
||||||
IGNORE_RETVAL(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE));
|
IGNORE_RETVAL(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE));
|
||||||
hr = CoCreateInstance(&CLSID_NetworkListManager, NULL, CLSCTX_ALL,
|
hr = CoCreateInstance(&CLSID_NetworkListManager, NULL, CLSCTX_ALL,
|
||||||
|
@ -294,8 +283,8 @@ static HINTERNET GetInternetSession(BOOL bRetry)
|
||||||
// INetworkListManager may fail with ERROR_SERVICE_DEPENDENCY_FAIL if the DHCP service
|
// INetworkListManager may fail with ERROR_SERVICE_DEPENDENCY_FAIL if the DHCP service
|
||||||
// is not running, in which case we must fall back to using InternetGetConnectedState().
|
// is not running, in which case we must fall back to using InternetGetConnectedState().
|
||||||
// See https://github.com/pbatard/rufus/issues/1801.
|
// See https://github.com/pbatard/rufus/issues/1801.
|
||||||
if ((hr == HRESULT_FROM_WIN32(ERROR_SERVICE_DEPENDENCY_FAIL)) && (pfInternetGetConnectedState != NULL)) {
|
if (hr == HRESULT_FROM_WIN32(ERROR_SERVICE_DEPENDENCY_FAIL)) {
|
||||||
InternetConnection = pfInternetGetConnectedState(&dwFlags, 0) ? VARIANT_TRUE : VARIANT_FALSE;
|
InternetConnection = InternetGetConnectedState(&dwFlags, 0) ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (hr == S_OK || !bRetry)
|
if (hr == S_OK || !bRetry)
|
||||||
|
@ -310,15 +299,15 @@ static HINTERNET GetInternetSession(BOOL bRetry)
|
||||||
static_sprintf(agent, APPLICATION_NAME "/%d.%d.%d (Windows NT %d.%d%s)",
|
static_sprintf(agent, APPLICATION_NAME "/%d.%d.%d (Windows NT %d.%d%s)",
|
||||||
rufus_version[0], rufus_version[1], rufus_version[2],
|
rufus_version[0], rufus_version[1], rufus_version[2],
|
||||||
nWindowsVersion >> 4, nWindowsVersion & 0x0F, is_x64() ? "; WOW64" : "");
|
nWindowsVersion >> 4, nWindowsVersion & 0x0F, is_x64() ? "; WOW64" : "");
|
||||||
hSession = pfInternetOpenA(agent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
|
hSession = InternetOpenA(agent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
|
||||||
// Set the timeouts
|
// Set the timeouts
|
||||||
pfInternetSetOptionA(hSession, INTERNET_OPTION_CONNECT_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout));
|
InternetSetOptionA(hSession, INTERNET_OPTION_CONNECT_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout));
|
||||||
pfInternetSetOptionA(hSession, INTERNET_OPTION_SEND_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout));
|
InternetSetOptionA(hSession, INTERNET_OPTION_SEND_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout));
|
||||||
pfInternetSetOptionA(hSession, INTERNET_OPTION_RECEIVE_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout));
|
InternetSetOptionA(hSession, INTERNET_OPTION_RECEIVE_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout));
|
||||||
// Enable gzip and deflate decoding schemes
|
// Enable gzip and deflate decoding schemes
|
||||||
pfInternetSetOptionA(hSession, INTERNET_OPTION_HTTP_DECODING, (LPVOID)&decodingSupport, sizeof(decodingSupport));
|
InternetSetOptionA(hSession, INTERNET_OPTION_HTTP_DECODING, (LPVOID)&decodingSupport, sizeof(decodingSupport));
|
||||||
// Enable HTTP/2 protocol support
|
// Enable HTTP/2 protocol support
|
||||||
pfInternetSetOptionA(hSession, INTERNET_OPTION_ENABLE_HTTP_PROTOCOL, (LPVOID)&dwProtocolSupport, sizeof(dwProtocolSupport));
|
InternetSetOptionA(hSession, INTERNET_OPTION_ENABLE_HTTP_PROTOCOL, (LPVOID)&dwProtocolSupport, sizeof(dwProtocolSupport));
|
||||||
|
|
||||||
out:
|
out:
|
||||||
return hSession;
|
return hSession;
|
||||||
|
@ -348,22 +337,6 @@ uint64_t DownloadToFileOrBuffer(const char* url, const char* file, BYTE** buffer
|
||||||
hostname, sizeof(hostname), 0, NULL, 1, urlpath, sizeof(urlpath), NULL, 1};
|
hostname, sizeof(hostname), 0, NULL, 1, urlpath, sizeof(urlpath), NULL, 1};
|
||||||
uint64_t size = 0, total_size = 0;
|
uint64_t size = 0, total_size = 0;
|
||||||
|
|
||||||
// Can't link with wininet.lib because of sideloading issues
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetCrackUrlA, (LPCSTR, DWORD, DWORD, LPURL_COMPONENTSA));
|
|
||||||
PF_TYPE_DECL(WINAPI, HINTERNET, InternetConnectA, (HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetReadFile, (HINTERNET, LPVOID, DWORD, LPDWORD));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetCloseHandle, (HINTERNET));
|
|
||||||
PF_TYPE_DECL(WINAPI, HINTERNET, HttpOpenRequestA, (HINTERNET, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR*, DWORD, DWORD_PTR));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, HttpSendRequestA, (HINTERNET, LPCSTR, DWORD, LPVOID, DWORD));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, HttpQueryInfoA, (HINTERNET, DWORD, LPVOID, LPDWORD, LPDWORD));
|
|
||||||
PF_INIT_OR_OUT(InternetCrackUrlA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(InternetConnectA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(InternetReadFile, WinInet);
|
|
||||||
PF_INIT_OR_OUT(InternetCloseHandle, WinInet);
|
|
||||||
PF_INIT_OR_OUT(HttpOpenRequestA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(HttpSendRequestA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(HttpQueryInfoA, WinInet);
|
|
||||||
|
|
||||||
FormatStatus = 0;
|
FormatStatus = 0;
|
||||||
DownloadStatus = 404;
|
DownloadStatus = 404;
|
||||||
if (hProgressDialog != NULL)
|
if (hProgressDialog != NULL)
|
||||||
|
@ -380,7 +353,7 @@ uint64_t DownloadToFileOrBuffer(const char* url, const char* file, BYTE** buffer
|
||||||
uprintf("Downloading %s", url);
|
uprintf("Downloading %s", url);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (!pfInternetCrackUrlA(url, (DWORD)safe_strlen(url), 0, &UrlParts))
|
if ( (!InternetCrackUrlA(url, (DWORD)safe_strlen(url), 0, &UrlParts))
|
||||||
|| (UrlParts.lpszHostName == NULL) || (UrlParts.lpszUrlPath == NULL)) {
|
|| (UrlParts.lpszHostName == NULL) || (UrlParts.lpszUrlPath == NULL)) {
|
||||||
uprintf("Unable to decode URL: %s", WinInetErrorString());
|
uprintf("Unable to decode URL: %s", WinInetErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -393,13 +366,13 @@ uint64_t DownloadToFileOrBuffer(const char* url, const char* file, BYTE** buffer
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
hConnection = pfInternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL);
|
hConnection = InternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL);
|
||||||
if (hConnection == NULL) {
|
if (hConnection == NULL) {
|
||||||
uprintf("Could not connect to server %s:%d: %s", UrlParts.lpszHostName, UrlParts.nPort, WinInetErrorString());
|
uprintf("Could not connect to server %s:%d: %s", UrlParts.lpszHostName, UrlParts.nPort, WinInetErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
hRequest = pfHttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types,
|
hRequest = HttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types,
|
||||||
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|
|
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|
|
||||||
INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_UI|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_HYPERLINK|
|
INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_UI|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_HYPERLINK|
|
||||||
((UrlParts.nScheme==INTERNET_SCHEME_HTTPS)?INTERNET_FLAG_SECURE:0), (DWORD_PTR)NULL);
|
((UrlParts.nScheme==INTERNET_SCHEME_HTTPS)?INTERNET_FLAG_SECURE:0), (DWORD_PTR)NULL);
|
||||||
|
@ -408,14 +381,14 @@ uint64_t DownloadToFileOrBuffer(const char* url, const char* file, BYTE** buffer
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pfHttpSendRequestA(hRequest, request_headers, -1L, NULL, 0)) {
|
if (!HttpSendRequestA(hRequest, request_headers, -1L, NULL, 0)) {
|
||||||
uprintf("Unable to send request: %s", WinInetErrorString());
|
uprintf("Unable to send request: %s", WinInetErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the file size
|
// Get the file size
|
||||||
dwSize = sizeof(DownloadStatus);
|
dwSize = sizeof(DownloadStatus);
|
||||||
pfHttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&DownloadStatus, &dwSize, NULL);
|
HttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&DownloadStatus, &dwSize, NULL);
|
||||||
if (DownloadStatus != 200) {
|
if (DownloadStatus != 200) {
|
||||||
error_code = ERROR_INTERNET_ITEM_NOT_FOUND;
|
error_code = ERROR_INTERNET_ITEM_NOT_FOUND;
|
||||||
SetLastError(ERROR_SEVERITY_ERROR | FAC(FACILITY_HTTP) | error_code);
|
SetLastError(ERROR_SEVERITY_ERROR | FAC(FACILITY_HTTP) | error_code);
|
||||||
|
@ -423,7 +396,7 @@ uint64_t DownloadToFileOrBuffer(const char* url, const char* file, BYTE** buffer
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
dwSize = sizeof(strsize);
|
dwSize = sizeof(strsize);
|
||||||
if (!pfHttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH, (LPVOID)strsize, &dwSize, NULL)) {
|
if (!HttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH, (LPVOID)strsize, &dwSize, NULL)) {
|
||||||
uprintf("Unable to retrieve file length: %s", WinInetErrorString());
|
uprintf("Unable to retrieve file length: %s", WinInetErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -462,7 +435,7 @@ uint64_t DownloadToFileOrBuffer(const char* url, const char* file, BYTE** buffer
|
||||||
// User may have cancelled the download
|
// User may have cancelled the download
|
||||||
if (IS_ERROR(FormatStatus))
|
if (IS_ERROR(FormatStatus))
|
||||||
goto out;
|
goto out;
|
||||||
if (!pfInternetReadFile(hRequest, buf, sizeof(buf), &dwDownloaded) || (dwDownloaded == 0))
|
if (!InternetReadFile(hRequest, buf, sizeof(buf), &dwDownloaded) || (dwDownloaded == 0))
|
||||||
break;
|
break;
|
||||||
if (hProgressDialog != NULL)
|
if (hProgressDialog != NULL)
|
||||||
UpdateProgressWithInfo(OP_NOOP, MSG_241, size, total_size);
|
UpdateProgressWithInfo(OP_NOOP, MSG_241, size, total_size);
|
||||||
|
@ -507,11 +480,11 @@ out:
|
||||||
safe_free(*buffer);
|
safe_free(*buffer);
|
||||||
}
|
}
|
||||||
if (hRequest)
|
if (hRequest)
|
||||||
pfInternetCloseHandle(hRequest);
|
InternetCloseHandle(hRequest);
|
||||||
if (hConnection)
|
if (hConnection)
|
||||||
pfInternetCloseHandle(hConnection);
|
InternetCloseHandle(hConnection);
|
||||||
if (hSession)
|
if (hSession)
|
||||||
pfInternetCloseHandle(hSession);
|
InternetCloseHandle(hSession);
|
||||||
|
|
||||||
SetLastError(error_code);
|
SetLastError(error_code);
|
||||||
return r ? size : 0;
|
return r ? size : 0;
|
||||||
|
@ -607,11 +580,11 @@ HANDLE DownloadSignedFileThreaded(const char* url, const char* file, HWND hProgr
|
||||||
return CreateThread(NULL, 0, DownloadSignedFileThread, &args, 0, NULL);
|
return CreateThread(NULL, 0, DownloadSignedFileThread, &args, 0, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline uint64_t to_uint64_t(uint16_t x[4]) {
|
static __inline uint64_t to_uint64_t(uint16_t x[3]) {
|
||||||
int i;
|
int i;
|
||||||
uint64_t ret = 0;
|
uint64_t ret = 0;
|
||||||
for (i=0; i<3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
ret = (ret<<16) + x[i];
|
ret = (ret << 16) + x[i];
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -639,22 +612,6 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
FILETIME FileTime;
|
FILETIME FileTime;
|
||||||
int64_t local_time = 0, reg_time, server_time, update_interval;
|
int64_t local_time = 0, reg_time, server_time, update_interval;
|
||||||
|
|
||||||
// Can't link with wininet.lib because of sideloading issues
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetCrackUrlA, (LPCSTR, DWORD, DWORD, LPURL_COMPONENTSA));
|
|
||||||
PF_TYPE_DECL(WINAPI, HINTERNET, InternetConnectA, (HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetReadFile, (HINTERNET, LPVOID, DWORD, LPDWORD));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetCloseHandle, (HINTERNET));
|
|
||||||
PF_TYPE_DECL(WINAPI, HINTERNET, HttpOpenRequestA, (HINTERNET, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR*, DWORD, DWORD_PTR));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, HttpSendRequestA, (HINTERNET, LPCSTR, DWORD, LPVOID, DWORD));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, HttpQueryInfoA, (HINTERNET, DWORD, LPVOID, LPDWORD, LPDWORD));
|
|
||||||
PF_INIT_OR_OUT(InternetCrackUrlA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(InternetConnectA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(InternetReadFile, WinInet);
|
|
||||||
PF_INIT_OR_OUT(InternetCloseHandle, WinInet);
|
|
||||||
PF_INIT_OR_OUT(HttpOpenRequestA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(HttpSendRequestA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(HttpQueryInfoA, WinInet);
|
|
||||||
|
|
||||||
verbose = ReadSetting32(SETTING_VERBOSE_UPDATES);
|
verbose = ReadSetting32(SETTING_VERBOSE_UPDATES);
|
||||||
// Without this the FileDialog will produce error 0x8001010E when compiled for Vista or later
|
// Without this the FileDialog will produce error 0x8001010E when compiled for Vista or later
|
||||||
IGNORE_RETVAL(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE));
|
IGNORE_RETVAL(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE));
|
||||||
|
@ -697,7 +654,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pfInternetCrackUrlA(server_url, (DWORD)safe_strlen(server_url), 0, &UrlParts))
|
if (!InternetCrackUrlA(server_url, (DWORD)safe_strlen(server_url), 0, &UrlParts))
|
||||||
goto out;
|
goto out;
|
||||||
hostname[sizeof(hostname)-1] = 0;
|
hostname[sizeof(hostname)-1] = 0;
|
||||||
|
|
||||||
|
@ -707,7 +664,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
hSession = GetInternetSession(FALSE);
|
hSession = GetInternetSession(FALSE);
|
||||||
if (hSession == NULL)
|
if (hSession == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
hConnection = pfInternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL);
|
hConnection = InternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL);
|
||||||
if (hConnection == NULL)
|
if (hConnection == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
@ -747,11 +704,11 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
UrlParts.dwUrlPathLength = sizeof(urlpath);
|
UrlParts.dwUrlPathLength = sizeof(urlpath);
|
||||||
for (i=0; i<ARRAYSIZE(verpos); i++) {
|
for (i=0; i<ARRAYSIZE(verpos); i++) {
|
||||||
vvuprintf("Trying %s", UrlParts.lpszUrlPath);
|
vvuprintf("Trying %s", UrlParts.lpszUrlPath);
|
||||||
hRequest = pfHttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types,
|
hRequest = HttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types,
|
||||||
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|
|
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|
|
||||||
INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_UI|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_HYPERLINK|
|
INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_UI|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_HYPERLINK|
|
||||||
((UrlParts.nScheme == INTERNET_SCHEME_HTTPS)?INTERNET_FLAG_SECURE:0), (DWORD_PTR)NULL);
|
((UrlParts.nScheme == INTERNET_SCHEME_HTTPS)?INTERNET_FLAG_SECURE:0), (DWORD_PTR)NULL);
|
||||||
if ((hRequest == NULL) || (!pfHttpSendRequestA(hRequest, request_headers, -1L, NULL, 0))) {
|
if ((hRequest == NULL) || (!HttpSendRequestA(hRequest, request_headers, -1L, NULL, 0))) {
|
||||||
uprintf("Unable to send request: %s", WinInetErrorString());
|
uprintf("Unable to send request: %s", WinInetErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -759,10 +716,10 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
// Ensure that we get a text file
|
// Ensure that we get a text file
|
||||||
dwSize = sizeof(dwStatus);
|
dwSize = sizeof(dwStatus);
|
||||||
dwStatus = 404;
|
dwStatus = 404;
|
||||||
pfHttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwStatus, &dwSize, NULL);
|
HttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwStatus, &dwSize, NULL);
|
||||||
if (dwStatus == 200)
|
if (dwStatus == 200)
|
||||||
break;
|
break;
|
||||||
pfInternetCloseHandle(hRequest);
|
InternetCloseHandle(hRequest);
|
||||||
hRequest = NULL;
|
hRequest = NULL;
|
||||||
safe_strcpy(&urlpath[verpos[i]], 5, ".ver");
|
safe_strcpy(&urlpath[verpos[i]], 5, ".ver");
|
||||||
}
|
}
|
||||||
|
@ -779,7 +736,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
// On the other hand, if local clock is set way back in the past, we will never check.
|
// On the other hand, if local clock is set way back in the past, we will never check.
|
||||||
dwSize = sizeof(ServerTime);
|
dwSize = sizeof(ServerTime);
|
||||||
// If we can't get a date we can trust, don't bother...
|
// If we can't get a date we can trust, don't bother...
|
||||||
if ( (!pfHttpQueryInfoA(hRequest, HTTP_QUERY_DATE|HTTP_QUERY_FLAG_SYSTEMTIME, (LPVOID)&ServerTime, &dwSize, NULL))
|
if ( (!HttpQueryInfoA(hRequest, HTTP_QUERY_DATE|HTTP_QUERY_FLAG_SYSTEMTIME, (LPVOID)&ServerTime, &dwSize, NULL))
|
||||||
|| (!SystemTimeToFileTime(&ServerTime, &FileTime)) )
|
|| (!SystemTimeToFileTime(&ServerTime, &FileTime)) )
|
||||||
goto out;
|
goto out;
|
||||||
server_time = ((((int64_t)FileTime.dwHighDateTime)<<32) + FileTime.dwLowDateTime) / 10000000;
|
server_time = ((((int64_t)FileTime.dwHighDateTime)<<32) + FileTime.dwLowDateTime) / 10000000;
|
||||||
|
@ -795,7 +752,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
}
|
}
|
||||||
|
|
||||||
dwSize = sizeof(dwTotalSize);
|
dwSize = sizeof(dwTotalSize);
|
||||||
if (!pfHttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwTotalSize, &dwSize, NULL))
|
if (!HttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwTotalSize, &dwSize, NULL))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
// Make sure the file is NUL terminated
|
// Make sure the file is NUL terminated
|
||||||
|
@ -803,7 +760,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
if (buf == NULL)
|
if (buf == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
// This is a version file - we should be able to gulp it down in one go
|
// This is a version file - we should be able to gulp it down in one go
|
||||||
if (!pfInternetReadFile(hRequest, buf, dwTotalSize, &dwDownloaded) || (dwDownloaded != dwTotalSize))
|
if (!InternetReadFile(hRequest, buf, dwTotalSize, &dwDownloaded) || (dwDownloaded != dwTotalSize))
|
||||||
goto out;
|
goto out;
|
||||||
vuprintf("Successfully downloaded version file (%d bytes)", dwTotalSize);
|
vuprintf("Successfully downloaded version file (%d bytes)", dwTotalSize);
|
||||||
|
|
||||||
|
@ -834,11 +791,11 @@ out:
|
||||||
safe_free(buf);
|
safe_free(buf);
|
||||||
safe_free(sig);
|
safe_free(sig);
|
||||||
if (hRequest)
|
if (hRequest)
|
||||||
pfInternetCloseHandle(hRequest);
|
InternetCloseHandle(hRequest);
|
||||||
if (hConnection)
|
if (hConnection)
|
||||||
pfInternetCloseHandle(hConnection);
|
InternetCloseHandle(hConnection);
|
||||||
if (hSession)
|
if (hSession)
|
||||||
pfInternetCloseHandle(hSession);
|
InternetCloseHandle(hSession);
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 1:
|
case 1:
|
||||||
PrintInfoDebug(3000, MSG_244);
|
PrintInfoDebug(3000, MSG_244);
|
||||||
|
@ -1094,26 +1051,13 @@ BOOL IsDownloadable(const char* url)
|
||||||
URL_COMPONENTSA UrlParts = { sizeof(URL_COMPONENTSA), NULL, 1, (INTERNET_SCHEME)0,
|
URL_COMPONENTSA UrlParts = { sizeof(URL_COMPONENTSA), NULL, 1, (INTERNET_SCHEME)0,
|
||||||
hostname, sizeof(hostname), 0, NULL, 1, urlpath, sizeof(urlpath), NULL, 1 };
|
hostname, sizeof(hostname), 0, NULL, 1, urlpath, sizeof(urlpath), NULL, 1 };
|
||||||
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetCrackUrlA, (LPCSTR, DWORD, DWORD, LPURL_COMPONENTSA));
|
|
||||||
PF_TYPE_DECL(WINAPI, HINTERNET, InternetConnectA, (HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, InternetCloseHandle, (HINTERNET));
|
|
||||||
PF_TYPE_DECL(WINAPI, HINTERNET, HttpOpenRequestA, (HINTERNET, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR*, DWORD, DWORD_PTR));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, HttpSendRequestA, (HINTERNET, LPCSTR, DWORD, LPVOID, DWORD));
|
|
||||||
PF_TYPE_DECL(WINAPI, BOOL, HttpQueryInfoA, (HINTERNET, DWORD, LPVOID, LPDWORD, LPDWORD));
|
|
||||||
PF_INIT_OR_OUT(InternetCrackUrlA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(InternetConnectA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(InternetCloseHandle, WinInet);
|
|
||||||
PF_INIT_OR_OUT(HttpOpenRequestA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(HttpSendRequestA, WinInet);
|
|
||||||
PF_INIT_OR_OUT(HttpQueryInfoA, WinInet);
|
|
||||||
|
|
||||||
if (url == NULL)
|
if (url == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
FormatStatus = 0;
|
FormatStatus = 0;
|
||||||
DownloadStatus = 404;
|
DownloadStatus = 404;
|
||||||
|
|
||||||
if ((!pfInternetCrackUrlA(url, (DWORD)safe_strlen(url), 0, &UrlParts))
|
if ((!InternetCrackUrlA(url, (DWORD)safe_strlen(url), 0, &UrlParts))
|
||||||
|| (UrlParts.lpszHostName == NULL) || (UrlParts.lpszUrlPath == NULL))
|
|| (UrlParts.lpszHostName == NULL) || (UrlParts.lpszUrlPath == NULL))
|
||||||
goto out;
|
goto out;
|
||||||
hostname[sizeof(hostname) - 1] = 0;
|
hostname[sizeof(hostname) - 1] = 0;
|
||||||
|
@ -1123,35 +1067,35 @@ BOOL IsDownloadable(const char* url)
|
||||||
if (hSession == NULL)
|
if (hSession == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
hConnection = pfInternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL);
|
hConnection = InternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL);
|
||||||
if (hConnection == NULL)
|
if (hConnection == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
hRequest = pfHttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types,
|
hRequest = HttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types,
|
||||||
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS |
|
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS |
|
||||||
INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_UI | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_HYPERLINK |
|
INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_UI | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_HYPERLINK |
|
||||||
((UrlParts.nScheme == INTERNET_SCHEME_HTTPS) ? INTERNET_FLAG_SECURE : 0), (DWORD_PTR)NULL);
|
((UrlParts.nScheme == INTERNET_SCHEME_HTTPS) ? INTERNET_FLAG_SECURE : 0), (DWORD_PTR)NULL);
|
||||||
if (hRequest == NULL)
|
if (hRequest == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!pfHttpSendRequestA(hRequest, request_headers, -1L, NULL, 0))
|
if (!HttpSendRequestA(hRequest, request_headers, -1L, NULL, 0))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
// Get the file size
|
// Get the file size
|
||||||
dwSize = sizeof(DownloadStatus);
|
dwSize = sizeof(DownloadStatus);
|
||||||
pfHttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, (LPVOID)&DownloadStatus, &dwSize, NULL);
|
HttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, (LPVOID)&DownloadStatus, &dwSize, NULL);
|
||||||
if (DownloadStatus != 200)
|
if (DownloadStatus != 200)
|
||||||
goto out;
|
goto out;
|
||||||
dwSize = sizeof(dwTotalSize);
|
dwSize = sizeof(dwTotalSize);
|
||||||
pfHttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwTotalSize, &dwSize, NULL);
|
HttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwTotalSize, &dwSize, NULL);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
if (hRequest)
|
if (hRequest)
|
||||||
pfInternetCloseHandle(hRequest);
|
InternetCloseHandle(hRequest);
|
||||||
if (hConnection)
|
if (hConnection)
|
||||||
pfInternetCloseHandle(hConnection);
|
InternetCloseHandle(hConnection);
|
||||||
if (hSession)
|
if (hSession)
|
||||||
pfInternetCloseHandle(hSession);
|
InternetCloseHandle(hSession);
|
||||||
|
|
||||||
return (dwTotalSize > 0);
|
return (dwTotalSize > 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -575,8 +575,6 @@ LONG ValidateSignature(HWND hDlg, const char* path)
|
||||||
LONG r = TRUST_E_SYSTEM_ERROR;
|
LONG r = TRUST_E_SYSTEM_ERROR;
|
||||||
WINTRUST_DATA trust_data = { 0 };
|
WINTRUST_DATA trust_data = { 0 };
|
||||||
WINTRUST_FILE_INFO trust_file = { 0 };
|
WINTRUST_FILE_INFO trust_file = { 0 };
|
||||||
PF_TYPE_DECL(WINAPI, long, WinVerifyTrustEx, (HWND, GUID*, WINTRUST_DATA*));
|
|
||||||
PF_INIT(WinVerifyTrustEx, WinTrust);
|
|
||||||
GUID guid_generic_verify = // WINTRUST_ACTION_GENERIC_VERIFY_V2
|
GUID guid_generic_verify = // WINTRUST_ACTION_GENERIC_VERIFY_V2
|
||||||
{ 0xaac56b, 0xcd44, 0x11d0,{ 0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee } };
|
{ 0xaac56b, 0xcd44, 0x11d0,{ 0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee } };
|
||||||
char *signature_name;
|
char *signature_name;
|
||||||
|
@ -627,8 +625,9 @@ LONG ValidateSignature(HWND hDlg, const char* path)
|
||||||
trust_data.dwUnionChoice = WTD_CHOICE_FILE;
|
trust_data.dwUnionChoice = WTD_CHOICE_FILE;
|
||||||
trust_data.pFile = &trust_file;
|
trust_data.pFile = &trust_file;
|
||||||
|
|
||||||
if (pfWinVerifyTrustEx != NULL)
|
// NB: Calling this API will create DLL sideloading issues through 'msasn1.dll'.
|
||||||
r = pfWinVerifyTrustEx(INVALID_HANDLE_VALUE, &guid_generic_verify, &trust_data);
|
// So make sure you delay-load 'wintrust.dll' in your application.
|
||||||
|
r = WinVerifyTrustEx(INVALID_HANDLE_VALUE, &guid_generic_verify, &trust_data);
|
||||||
safe_free(trust_file.pcwszFilePath);
|
safe_free(trust_file.pcwszFilePath);
|
||||||
switch (r) {
|
switch (r) {
|
||||||
case ERROR_SUCCESS:
|
case ERROR_SUCCESS:
|
||||||
|
|
12
src/rufus.c
12
src/rufus.c
|
@ -2332,9 +2332,6 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
case IDC_LOG:
|
case IDC_LOG:
|
||||||
// Place the log Window to the right (or left for RTL) of our dialog on first display
|
// Place the log Window to the right (or left for RTL) of our dialog on first display
|
||||||
if (first_log_display) {
|
if (first_log_display) {
|
||||||
// Can't link to dwmapi.lib since it sideloads dwapi.dll *before* we get a chance
|
|
||||||
// to prevent local directory lookup (Sideloading mitigation).
|
|
||||||
PF_TYPE_DECL(WINAPI, HRESULT, DwmGetWindowAttribute, (HWND, DWORD, PVOID, DWORD));
|
|
||||||
GetClientRect(GetDesktopWindow(), &DesktopRect);
|
GetClientRect(GetDesktopWindow(), &DesktopRect);
|
||||||
GetWindowRect(hLogDialog, &DialogRect);
|
GetWindowRect(hLogDialog, &DialogRect);
|
||||||
nWidth = DialogRect.right - DialogRect.left;
|
nWidth = DialogRect.right - DialogRect.left;
|
||||||
|
@ -2342,14 +2339,13 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
GetWindowRect(hDlg, &DialogRect);
|
GetWindowRect(hDlg, &DialogRect);
|
||||||
offset = GetSystemMetrics(SM_CXBORDER);
|
offset = GetSystemMetrics(SM_CXBORDER);
|
||||||
if (nWindowsVersion >= WINDOWS_10) {
|
if (nWindowsVersion >= WINDOWS_10) {
|
||||||
PF_INIT(DwmGetWindowAttribute, Dwmapi);
|
|
||||||
// See https://stackoverflow.com/a/42491227/1069307
|
// See https://stackoverflow.com/a/42491227/1069307
|
||||||
// I agree with Stephen Hazel: Whoever at Microsoft thought it would be a great idea to
|
// I agree with Stephen Hazel: Whoever at Microsoft thought it would be a great idea to
|
||||||
// add a *FRIGGING INVISIBLE BORDER* in Windows 10 should face the harshest punishment!
|
// add a *FRIGGING INVISIBLE BORDER* in Windows 10 should face the harshest punishment!
|
||||||
if (pfDwmGetWindowAttribute != NULL) {
|
// Also calling this API will create DLL sideloading issues through 'dwmapi.dll' so make
|
||||||
pfDwmGetWindowAttribute(hDlg, DWMWA_EXTENDED_FRAME_BOUNDS, &rc, sizeof(RECT));
|
// sure you delay-load it in your application.
|
||||||
offset += 2 * (DialogRect.left - rc.left);
|
DwmGetWindowAttribute(hDlg, DWMWA_EXTENDED_FRAME_BOUNDS, &rc, sizeof(RECT));
|
||||||
}
|
offset += 2 * (DialogRect.left - rc.left);
|
||||||
}
|
}
|
||||||
if (right_to_left_mode)
|
if (right_to_left_mode)
|
||||||
Point.x = max(DialogRect.left - offset - nWidth, 0);
|
Point.x = max(DialogRect.left - offset - nWidth, 0);
|
||||||
|
|
10
src/rufus.rc
10
src/rufus.rc
|
@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
IDD_DIALOG DIALOGEX 12, 12, 232, 326
|
IDD_DIALOG DIALOGEX 12, 12, 232, 326
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_ACCEPTFILES
|
EXSTYLE WS_EX_ACCEPTFILES
|
||||||
CAPTION "Rufus 3.19.1881"
|
CAPTION "Rufus 3.19.1884"
|
||||||
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
||||||
|
@ -395,8 +395,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 3,19,1881,0
|
FILEVERSION 3,19,1884,0
|
||||||
PRODUCTVERSION 3,19,1881,0
|
PRODUCTVERSION 3,19,1884,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -414,13 +414,13 @@ BEGIN
|
||||||
VALUE "Comments", "https://rufus.ie"
|
VALUE "Comments", "https://rufus.ie"
|
||||||
VALUE "CompanyName", "Akeo Consulting"
|
VALUE "CompanyName", "Akeo Consulting"
|
||||||
VALUE "FileDescription", "Rufus"
|
VALUE "FileDescription", "Rufus"
|
||||||
VALUE "FileVersion", "3.19.1881"
|
VALUE "FileVersion", "3.19.1884"
|
||||||
VALUE "InternalName", "Rufus"
|
VALUE "InternalName", "Rufus"
|
||||||
VALUE "LegalCopyright", "© 2011-2022 Pete Batard (GPL v3)"
|
VALUE "LegalCopyright", "© 2011-2022 Pete Batard (GPL v3)"
|
||||||
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
|
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
|
||||||
VALUE "OriginalFilename", "rufus-3.19.exe"
|
VALUE "OriginalFilename", "rufus-3.19.exe"
|
||||||
VALUE "ProductName", "Rufus"
|
VALUE "ProductName", "Rufus"
|
||||||
VALUE "ProductVersion", "3.19.1881"
|
VALUE "ProductVersion", "3.19.1884"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
@ -168,6 +168,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
|
@ -168,6 +168,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
|
@ -166,6 +166,7 @@ CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
ECHO_C = @ECHO_C@
|
ECHO_C = @ECHO_C@
|
||||||
ECHO_N = @ECHO_N@
|
ECHO_N = @ECHO_N@
|
||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue