Browse Source

Prevented potential memory fault with burn_set_signal_handling()

tags/ZeroSevenEight
Thomas Schmitt 10 years ago
parent
commit
cdad7fcd80
3 changed files with 7 additions and 4 deletions
  1. +1
    -1
      cdrskin/cdrskin_timestamp.h
  2. +2
    -1
      libburn/init.c
  3. +4
    -2
      libburn/libburn.h

+ 1
- 1
cdrskin/cdrskin_timestamp.h View File

@@ -1 +1 @@
#define Cdrskin_timestamP "2010.03.07.081704"
#define Cdrskin_timestamP "2010.03.08.092608"

+ 2
- 1
libburn/init.c View File

@@ -490,7 +490,8 @@ void burn_set_signal_handling(void *handle, burn_abort_handler_t handler,

}
strcpy(abort_message_prefix, "libburn : ");
if(handle != NULL)
abort_message_prefix[0] = 0;
if(handle != NULL && handler == burn_builtin_abort_handler)
strncpy(abort_message_prefix, (char *) handle,
sizeof(abort_message_prefix)-1);
abort_message_prefix[sizeof(abort_message_prefix)-1] = 0;


+ 4
- 2
libburn/libburn.h View File

@@ -2802,8 +2802,10 @@ typedef int (*burn_abort_handler_t)(void *handle, int signum, int flag);
Depending on mode it may cancel all drive operations, wait for all drives
to become idle, exit(1). It may also prepare function
burn_drive_get_status() for waiting and performing exit(1).
If text is not NULL then it is used as prefix for pacifier messages of
burn_abort_pacifier().
If parameter handle may be NULL or a text that shall be used as prefix for
pacifier messages of burn_abort_pacifier(). Other than with an application
provided handler, the prefix char array does not have to be kept existing
until the eventual signal event.
Before version 0.7.8 only action 0 was available. I.e. the built-in handler
waited for the drives to become idle and then performed exit(1) directly.
But FreeBSD 8.0 sometimes pauses the other threads until the signal handler


Loading…
Cancel
Save