Process a return code of 'write' function
authorAlexey Gladkov <legion@altlinux.org>
Sat, 5 Apr 2008 06:30:25 +0000 (10:30 +0400)
committerAlexey Gladkov <legion@altlinux.org>
Tue, 8 Apr 2008 18:31:03 +0000 (22:31 +0400)
Signed-off-by: Alexey Gladkov <legion@altlinux.org>
src/loadkeys.c
src/loadkeys.y

index df1a414..0649f08 100644 (file)
@@ -2977,19 +2977,24 @@ bkeymap () {
        char flag, magic[] = "bkeymap";
        unsigned short v;
 
-       write(1, magic, 7);
+       if (write(1, magic, 7) == -1)
+               goto fail;
        for (i = 0; i < MAX_NR_KEYMAPS; i++) {
                flag = key_map[i] ? 1 : 0;
-               write(1, &flag, 1);
+               if (write(1, &flag, 1) == -1)
+                       goto fail;
        }
        for (i = 0; i < MAX_NR_KEYMAPS; i++) {
                if (key_map[i]) {
                        for (j = 0; j < NR_KEYS / 2; j++) {
                                v = key_map[i][j];
-                               write(1, &v, 2);
+                               if (write(1, &v, 2) == -1)
+                                       goto fail;
                        }
                }
        }
        exit(0);
+fail:  fprintf(stderr, _("Error writing map to file\n"));
+       exit(1);
 }
 
index 5497130..b476264 100644 (file)
@@ -1281,18 +1281,23 @@ bkeymap () {
        char flag, magic[] = "bkeymap";
        unsigned short v;
 
-       write(1, magic, 7);
+       if (write(1, magic, 7) == -1)
+               goto fail;
        for (i = 0; i < MAX_NR_KEYMAPS; i++) {
                flag = key_map[i] ? 1 : 0;
-               write(1, &flag, 1);
+               if (write(1, &flag, 1) == -1)
+                       goto fail;
        }
        for (i = 0; i < MAX_NR_KEYMAPS; i++) {
                if (key_map[i]) {
                        for (j = 0; j < NR_KEYS / 2; j++) {
                                v = key_map[i][j];
-                               write(1, &v, 2);
+                               if (write(1, &v, 2) == -1)
+                                       goto fail;
                        }
                }
        }
        exit(0);
+fail:  fprintf(stderr, _("Error writing map to file\n"));
+       exit(1);
 }