]> sourceware.org Git - systemtap.git/commitdiff
PR14364: fix s390 oversight
authorFrank Ch. Eigler <fche@redhat.com>
Fri, 28 Sep 2012 22:59:54 +0000 (18:59 -0400)
committerFrank Ch. Eigler <fche@redhat.com>
Fri, 28 Sep 2012 23:01:16 +0000 (19:01 -0400)
* runtime/loc2c-runtime.h (s390: _stp_deref, _stp_store_deref):
  Add in missing lookup_bad_addr check.

Found-By-Mr.-Eagle-Eye: Josh Stone <jistone@redhat.com>

runtime/loc2c-runtime.h

index ef99cd7639f15df3db991f77905cb9c87a16abb2..fc2e7dbcaed893a2c6c24b1f2d1ac11583b95f15 100644 (file)
@@ -901,7 +901,9 @@ extern void __store_deref_bad(void);
     mm_segment_t _oldfs = get_fs();                                           \
     set_fs(seg);                                                              \
     pagefault_disable();                                                      \
-    switch (size) { \
+    if (lookup_bad_addr((unsigned long)addr, size))                    \
+      _bad = 1;                                                         \
+    else switch (size) { \
       case 1: _bad = __get_user(_b, (u8 *)(_a)); _v = _b; break; \
       case 2: _bad = __get_user(_w, (u16 *)(_a)); _v = _w; break; \
       case 4: _bad = __get_user(_l, (u32 *)(_a)); _v = _l; break; \
@@ -920,7 +922,9 @@ extern void __store_deref_bad(void);
     mm_segment_t _oldfs = get_fs();                                           \
     set_fs(seg);                                                              \
     pagefault_disable();                                                      \
-    switch (size) {             \
+    if (lookup_bad_addr((unsigned long)addr, size))                    \
+      _bad = 1;                                                         \
+    else switch (size) {                                               \
       case 1: _bad = __put_user(((u8)(value)), ((u8 *)(addr))); break; \
       case 2: _bad = __put_user(((u16)(value)), ((u16 *)(addr))); break; \
       case 4: _bad = __put_user(((u32)(value)), ((u32 *)(addr))); break; \
This page took 0.026292 seconds and 5 git commands to generate.