Commit 11d4ce23ac55a7d881bba5214c47922c05127242

Dominik Röttsches 2019-12-09T12:40:42

Fix more UBSan warnings on adding offset to nullptr (#57384) * src/smooth/ftsmooth.c (ft_smooth_render_generic), src/psaux/psobjs.c (ps_table_add): Use `FT_OFFSET'.

diff --git a/ChangeLog b/ChangeLog
index 0506b2a..db51329 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-12-09  Dominik Röttsches  <drott@chromium.org>
+
+	Fix more UBSan warnings on adding offset to nullptr (#57384).
+    
+	* src/smooth/ftsmooth.c (ft_smooth_render_generic),
+	src/psaux/psobjs.c (ps_table_add): Use `FT_OFFSET'.
+
 2019-12-05  Werner Lemberg  <wl@gnu.org>
 
 	* src/truetype/ttinterp.c (TT_RunIns): Use `FT_OFFSET'.
diff --git a/src/psaux/psobjs.c b/src/psaux/psobjs.c
index 8bfdb92..5fb23b1 100644
--- a/src/psaux/psobjs.c
+++ b/src/psaux/psobjs.c
@@ -214,7 +214,7 @@
     }
 
     /* add the object to the base block and adjust offset */
-    table->elements[idx] = table->block + table->cursor;
+    table->elements[idx] = FT_OFFSET( table->block, table->cursor );
     table->lengths [idx] = length;
     FT_MEM_COPY( table->block + table->cursor, object, length );
 
diff --git a/src/smooth/ftsmooth.c b/src/smooth/ftsmooth.c
index cd034d2..dcaad35 100644
--- a/src/smooth/ftsmooth.c
+++ b/src/smooth/ftsmooth.c
@@ -188,7 +188,7 @@
     /* implode outline if needed */
     {
       FT_Vector*  points     = outline->points;
-      FT_Vector*  points_end = points + outline->n_points;
+      FT_Vector*  points_end = FT_OFFSET( points, outline->n_points );
       FT_Vector*  vec;
 
 
@@ -207,7 +207,7 @@
     /* deflate outline if needed */
     {
       FT_Vector*  points     = outline->points;
-      FT_Vector*  points_end = points + outline->n_points;
+      FT_Vector*  points_end = FT_OFFSET( points, outline->n_points );
       FT_Vector*  vec;