|
@@ -4,13 +4,13 @@
|
|
|
* Licensed under the GPL
|
|
|
*/
|
|
|
|
|
|
-#include <setjmp.h>
|
|
|
#include <string.h>
|
|
|
#include "user_util.h"
|
|
|
#include "uml_uaccess.h"
|
|
|
#include "task.h"
|
|
|
#include "kern_util.h"
|
|
|
#include "os.h"
|
|
|
+#include "longjmp.h"
|
|
|
|
|
|
int __do_copy_from_user(void *to, const void *from, int n,
|
|
|
void **fault_addr, void **fault_catcher)
|
|
@@ -80,10 +80,10 @@ int __do_strnlen_user(const char *str, unsigned long n,
|
|
|
struct tt_regs save = TASK_REGS(get_current())->tt;
|
|
|
int ret;
|
|
|
unsigned long *faddrp = (unsigned long *)fault_addr;
|
|
|
- sigjmp_buf jbuf;
|
|
|
+ jmp_buf jbuf;
|
|
|
|
|
|
*fault_catcher = &jbuf;
|
|
|
- if(sigsetjmp(jbuf, 1) == 0)
|
|
|
+ if(UML_SETJMP(&jbuf) == 0)
|
|
|
ret = strlen(str) + 1;
|
|
|
else ret = *faddrp - (unsigned long) str;
|
|
|
|