]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/cmd/fortune.c
libtags, zuke: add *.mod support (thanks kemal)
[plan9front.git] / sys / src / cmd / fortune.c
index 84c59f34ac8e2e9eea1bb5f1f46f7884769565ea..8ceb6f66b79885af7c3051187f02f4d6a78c883c 100644 (file)
@@ -35,7 +35,7 @@ main(int argc, char *argv[])
                                print("Misfortune?\n");
                                exits("misfortune");
                        }
-                       if(ixbuf->length == 0){
+                       if(ixbuf->length < sizeof(offs)){
                                /* someone else is rewriting the index */
                                goto NoIndex;
                        }
@@ -56,13 +56,13 @@ main(int argc, char *argv[])
                }
        }
        if(oldindex){
-               seek(ix, truerand()%(ixbuf->length/sizeof(offs))*sizeof(offs), 0);
+               seek(ix, ntruerand(ixbuf->length/sizeof(offs))*sizeof(offs), 0);
                read(ix, off, sizeof(off));
                Bseek(f, off[0]|(off[1]<<8)|(off[2]<<16)|(off[3]<<24), 0);
                p = Brdline(f, '\n');
                if(p){
                        p[Blinelen(f)-1] = 0;
-                       strcpy(choice, p);
+                       strncpy(choice, p, sizeof(choice)-1);
                }else
                        strcpy(choice, "Misfortune!");
        }else{
@@ -83,8 +83,8 @@ NoIndex:
                                off[3] = offs>>24;
                                Bwrite(&g, off, sizeof(off));
                        }
-                       if(lrand()%i==0)
-                               strcpy(choice, p);
+                       if(nrand(i)==0)
+                               strncpy(choice, p, sizeof(choice)-1);
                }
        }
        print("%s\n", choice);