mirror_corosync/exec
Jan Friesse b93d75abc4 schedwrk: Cleanup and make it work on PPC BE
Schedwrk is passing hdb handle (64-bit) to
totempg_callback_token_create as a context. Context is defined to be
pointer, so there is conversion function which stores 64-bit hdb_handle
into pointer. Potentially, pointer can be 32-bit. This means, check
part of hdb is discarded (and have to get special no_check value in
schedwrk_do) later. This works quite well on 32-bit Little-Endian
system. Sadly on Big-Endian system, check partition of hdb is stored
instead of value. Result is error of hdb_handle_get call.

Proposed solution is to pass handle pointer to
totempg_callback_token_create as context. This means full hdb (check +
value) can be used in schedwrk_do (easier detection of memory
corruption).

Main reason for this patch is to remove usage of pointer as integer
value.

Small drawback of given solution is that handle pointer must be memory
allocated on heap or static memory, making API more bug-prone. Current
usage of schedwrk API across corosync always use memory in .text
section (safe), so it's not a problem.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2016-05-17 16:29:25 +02:00
..
.gitignore Add .gitignore files. 2010-10-21 07:43:46 -07:00
apidef.c sync: kill evil and syncv1 in one shot 2012-03-09 11:15:08 +01:00
apidef.h Update copyright header dates in exec directory 2012-02-13 17:05:04 -07:00
cfg.c CFG: Prevent CFG orignating messages during SYNC 2015-07-02 16:49:38 +02:00
cmap.c config: Fix typos 2014-07-24 10:27:45 +01:00
coroparse.c parser: Make config file parser more hierarchy 2016-04-22 13:01:04 +02:00
cpg.c cpg: Add support for messages larger than 1Mb 2015-03-05 16:45:15 +00:00
cs_queue.h Update copyright header dates in exec directory 2012-02-13 17:05:04 -07:00
fsm.h Make logging of WD and MON service correct 2012-08-16 14:45:15 +02:00
icmap.c icmap: Add func to test equality of two key values 2013-09-10 17:02:12 +02:00
ipc_glue.c ipc: Process votequorum messages during sync 2014-08-05 17:22:44 +02:00
logconfig.c Fix spelling error in binary corosync 2016-01-27 18:29:25 +01:00
logconfig.h rename mainconfig to logconfig 2012-05-29 09:36:00 +02:00
logsys.c logsys: Log warning if flightrecorder init fails 2014-06-02 14:36:10 +02:00
main.c logging: Use our own version of basename 2016-05-03 15:31:29 +02:00
main.h Reload: Make coroparse use a designated icmap hash table 2013-09-12 16:09:06 +01:00
Makefile.am be consistent in using CPPFLAGS vs CFLAGS 2014-07-21 08:47:21 +02:00
mon.c mon: Make monitoring work 2014-02-25 14:57:20 +01:00
pload.c build: bring SOLARIS up to the same standard as other OSes 2012-08-30 15:00:27 +02:00
quorum.c sync: kill evil and syncv1 in one shot 2012-03-09 11:15:08 +01:00
quorum.h Update copyright header dates in exec directory 2012-02-13 17:05:04 -07:00
schedwrk.c schedwrk: Cleanup and make it work on PPC BE 2016-05-17 16:29:25 +02:00
schedwrk.h Update copyright header dates in exec directory 2012-02-13 17:05:04 -07:00
service.c service: Fix memleak in service_unlink_and_exit 2013-06-21 11:21:29 +02:00
service.h service: remove leftovers from mt corosync 2012-08-09 15:10:16 +02:00
sync.c Remove a few unused variables and functions 2016-01-04 17:11:06 +01:00
sync.h sync: kill evil and syncv1 in one shot 2012-03-09 11:15:08 +01:00
timer.c Update copyright header dates in exec directory 2012-02-13 17:05:04 -07:00
timer.h Update copyright header dates in exec directory 2012-02-13 17:05:04 -07:00
totemconfig.c totemconfig: Explicitly pass IP version 2016-04-07 14:45:05 +02:00
totemconfig.h totemconfig: refactor nodelist_to_interface func 2014-07-22 14:59:31 +02:00
totemcrypto.c [crypto] fix crypto block rounding/padding calculation 2014-09-06 07:11:56 +02:00
totemcrypto.h crypto: drop < 2.3 protocols and onwire compat 2013-01-14 11:49:32 +01:00
totemiba.c totemiba: Fix incorrect failed log message 2014-05-15 15:28:51 +02:00
totemiba.h Return back "Totem is unable to form..." message 2012-10-08 16:53:35 +02:00
totemip.c Adjust MTU for IPv6 correctly 2014-10-01 14:20:21 +02:00
totemmrp.c Add waiting_trans_ack also to fragmentation layer 2012-11-22 11:48:12 +01:00
totemmrp.h Add waiting_trans_ack also to fragmentation layer 2012-11-22 11:48:12 +01:00
totemnet.c totemudpu: Implement member_set_active 2014-08-26 15:36:05 +02:00
totemnet.h totemnet: Add totemnet_member_set_active 2014-08-26 15:35:59 +02:00
totempg.c totempg: Fix memory leak 2016-02-10 15:57:20 +01:00
totemrrp.c Log auto-recovery of ring only once 2015-01-14 18:13:29 +01:00
totemrrp.h totem: Inform RRP about membership changes 2014-08-26 15:35:56 +02:00
totemsrp.c totemsrp: Fix clang warning (tautological compare) 2016-01-04 17:28:14 +01:00
totemsrp.h Add waiting_trans_ack also to fragmentation layer 2012-11-22 11:48:12 +01:00
totemudp.c totemudp: Move udp bind() so that multicast works with IPv6 2015-11-16 16:00:36 +00:00
totemudp.h Return back "Totem is unable to form..." message 2012-10-08 16:53:35 +02:00
totemudpu.c Adjust MTU for IPv6 correctly 2014-10-01 14:20:21 +02:00
totemudpu.h totemudpu: Implement member_set_active 2014-08-26 15:36:05 +02:00
util.c Introduce get_run_dir function 2014-06-02 14:53:18 +02:00
util.h Move ringid store and load from totem library 2014-06-02 14:54:57 +02:00
votequorum.c Check for fdatasync 2015-12-16 16:43:27 +01:00
votequorum.h Remove include/engine/quorum and integrate it into exec/engine.h 2012-02-08 08:31:10 -07:00
vsf_quorum.c quorum: Display node id as unsigned int. 2015-11-27 15:56:54 +01:00
vsf_ykd.c YKD: Fix loading of YKD quorum module 2014-08-18 09:33:59 +01:00
vsf_ykd.h Remove include/engine/quorum and integrate it into exec/engine.h 2012-02-08 08:31:10 -07:00
vsf.h Update copyright header dates in exec directory 2012-02-13 17:05:04 -07:00
wd.c wd: make watchdog device configurable 2016-05-03 15:47:15 +02:00